diff --git a/.idea/docker-osticket.iml b/.idea/docker-osticket.iml
deleted file mode 100644
index c956989..0000000
--- a/.idea/docker-osticket.iml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
deleted file mode 100644
index f758959..0000000
--- a/.idea/encodings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index f5b876d..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/scopes/scope_settings.xml b/.idea/scopes/scope_settings.xml
deleted file mode 100644
index 922003b..0000000
--- a/.idea/scopes/scope_settings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 94a25f7..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
index a243610..b5a3a9d 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,27 +1,13 @@
-# Deployment doesn't work on Alpine
-FROM php:7.3-cli AS deployer
-ENV OSTICKET_VERSION=1.14.3
-RUN set -x \
- && apt-get update \
- && apt-get install -y git-core \
- && git clone -b v${OSTICKET_VERSION} --depth 1 https://github.com/osTicket/osTicket.git \
- && cd osTicket \
- && php manage.php deploy -sv /data/upload \
- # www-data is uid:gid 82:82 in php:7.0-fpm-alpine
- && chown -R 82:82 /data/upload \
- # Hide setup
- && mv /data/upload/setup /data/upload/setup_hidden \
- && chown -R root:root /data/upload/setup_hidden \
- && chmod -R go= /data/upload/setup_hidden
-
FROM php:7.3-fpm-alpine
MAINTAINER Martin Campbell
# environment for osticket
+ENV OSTICKET_VERSION=1.14.3
ENV HOME=/data
-# setup workdir
+ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so
WORKDIR /data
-COPY --from=deployer /data/upload upload
RUN set -x && \
+ # Fix iconv bug (empty body when mail encoded in quoted-printable)
+ apk add gnu-libiconv --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/ --allow-untrusted && \
# requirements and PHP extensions
apk add --no-cache --update \
wget \
@@ -34,6 +20,7 @@ RUN set -x && \
openldap \
libintl \
libxml2 \
+ libzip \
icu \
openssl && \
apk add --no-cache --virtual .build-deps \
@@ -43,34 +30,131 @@ RUN set -x && \
openldap-dev \
gettext-dev \
libxml2-dev \
+ libzip-dev \
icu-dev \
autoconf \
g++ \
make \
- pcre-dev && \
- docker-php-ext-install gd curl ldap mysqli sockets gettext mbstring xml intl opcache && \
+ pcre-dev \
+ git && \
+ docker-php-ext-install gd curl ldap mysqli sockets gettext mbstring xml intl opcache zip && \
docker-php-ext-configure imap --with-imap-ssl && \
docker-php-ext-install imap && \
pecl install apcu && docker-php-ext-enable apcu && \
- apk del .build-deps && \
- rm -rf /var/cache/apk/* && \
+ git clone -b v${OSTICKET_VERSION} --depth 1 https://github.com/osTicket/osTicket.git && \
+ ls -hal && \
+ cd osTicket && \
+ php manage.php deploy --setup --git /data/upload && \
+ ls -hal /data/upload/ && \
+ cd .. && \
+ chown -R www-data:www-data /data/upload && \
+ # Hide setup
+ mv /data/upload/setup /data/upload/setup_hidden && \
+ chown -R root:root /data/upload/setup_hidden && \
+ chmod -R go= /data/upload/setup_hidden && \
# Download languages packs
- wget -nv -O upload/include/i18n/fr.phar https://s3.amazonaws.com/downloads.osticket.com/lang/fr.phar && \
- wget -nv -O upload/include/i18n/ar.phar https://s3.amazonaws.com/downloads.osticket.com/lang/ar.phar && \
- wget -nv -O upload/include/i18n/pt_BR.phar https://s3.amazonaws.com/downloads.osticket.com/lang/pt_BR.phar && \
- wget -nv -O upload/include/i18n/it.phar https://s3.amazonaws.com/downloads.osticket.com/lang/it.phar && \
- wget -nv -O upload/include/i18n/es_ES.phar https://s3.amazonaws.com/downloads.osticket.com/lang/es_ES.phar && \
- wget -nv -O upload/include/i18n/de.phar https://s3.amazonaws.com/downloads.osticket.com/lang/de.phar && \
+ wget -nv -O upload/include/i18n/fr.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/fr.phar && \
+ wget -nv -O upload/include/i18n/ar.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/ar.phar && \
+ wget -nv -O upload/include/i18n/pt_BR.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/pt_BR.phar && \
+ wget -nv -O upload/include/i18n/it.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/it.phar && \
+ wget -nv -O upload/include/i18n/es_ES.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/es_ES.phar && \
+ wget -nv -O upload/include/i18n/de.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/de.phar && \
+ wget -nv -O upload/include/i18n/sq.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/sq.phar && \
+ wget -nv -O upload/include/i18n/ar_EG.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/ar_EG.phar && \
+ wget -nv -O upload/include/i18n/az.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/az.phar && \
+ wget -nv -O upload/include/i18n/eu.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/eu.phar && \
+ wget -nv -O upload/include/i18n/bn.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/bn.phar && \
+ wget -nv -O upload/include/i18n/bs.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/bs.phar && \
+ wget -nv -O upload/include/i18n/bg.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/bg.phar && \
+ wget -nv -O upload/include/i18n/ca.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/ca.phar && \
+ wget -nv -O upload/include/i18n/zh_CN.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/zh_CN.phar && \
+ wget -nv -O upload/include/i18n/zh_TW.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/zh_TW.phar && \
+ wget -nv -O upload/include/i18n/hr.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/hr.phar && \
+ wget -nv -O upload/include/i18n/cd.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/cs.phar && \
+ wget -nv -O upload/include/i18n/da.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/da.phar && \
+ wget -nv -O upload/include/i18n/nl.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/nl.phar && \
+ wget -nv -O upload/include/i18n/en_GB.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/en_GB.phar && \
+ wget -nv -O upload/include/i18n/et.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/et.phar && \
+ wget -nv -O upload/include/i18n/fi.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/fi.phar && \
+ wget -nv -O upload/include/i18n/gl.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/gl.phar && \
+ wget -nv -O upload/include/i18n/ka.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/ka.phar && \
+ wget -nv -O upload/include/i18n/el.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/el.phar && \
+ wget -nv -O upload/include/i18n/he.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/he.phar && \
+ wget -nv -O upload/include/i18n/hi.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/hi.phar && \
+ wget -nv -O upload/include/i18n/hu.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/hu.phar && \
+ wget -nv -O upload/include/i18n/is.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/is.phar && \
+ wget -nv -O upload/include/i18n/id.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/id.phar && \
+ wget -nv -O upload/include/i18n/ja.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/ja.phar && \
+ wget -nv -O upload/include/i18n/km.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/km.phar && \
+ wget -nv -O upload/include/i18n/ko.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/ko.phar && \
+ wget -nv -O upload/include/i18n/lv.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/lv.phar && \
+ wget -nv -O upload/include/i18n/lt.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/lt.phar && \
+ wget -nv -O upload/include/i18n/mk.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/mk.phar && \
+ wget -nv -O upload/include/i18n/ms.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/ms.phar && \
+ wget -nv -O upload/include/i18n/mn.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/mn.phar && \
+ wget -nv -O upload/include/i18n/no.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/no.phar && \
+ wget -nv -O upload/include/i18n/fa.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/fa.phar && \
+ wget -nv -O upload/include/i18n/pl.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/pl.phar && \
+ wget -nv -O upload/include/i18n/ro.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/ro.phar && \
+ wget -nv -O upload/include/i18n/ru.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/ru.phar && \
+ wget -nv -O upload/include/i18n/sr.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/sr.phar && \
+ wget -nv -O upload/include/i18n/sr_CS.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/sr_CS.phar && \
+ wget -nv -O upload/include/i18n/sk.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/sk.phar && \
+ wget -nv -O upload/include/i18n/sl.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/sl.phar && \
+ wget -nv -O upload/include/i18n/es_AR.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/es_AR.phar && \
+ wget -nv -O upload/include/i18n/es_MX.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/es_MX.phar && \
+ wget -nv -O upload/include/i18n/sw.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/sw.phar && \
+ wget -nv -O upload/include/i18n/sv_SE.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/sv_SE.phar && \
+ wget -nv -O upload/include/i18n/th.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/th.phar && \
+ wget -nv -O upload/include/i18n/tr.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/tr.phar && \
+ wget -nv -O upload/include/i18n/uk.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/uk.phar && \
+ wget -nv -O upload/include/i18n/ur_IN.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/ur_IN.phar && \
+ wget -nv -O upload/include/i18n/ur_PK.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/ur_PK.phar && \
+ wget -nv -O upload/include/i18n/vi.phar https://s3.amazonaws.com/downloads.osticket.com/lang/1.14.x/vi.phar && \
mv upload/include/i18n upload/include/i18n.dist && \
- # Download LDAP plugin
+ # Download official plugins
wget -nv -O upload/include/plugins/auth-ldap.phar https://s3.amazonaws.com/downloads.osticket.com/plugin/auth-ldap.phar && \
+ wget -nv -O upload/include/plugins/auth-passthru.phar https://s3.amazonaws.com/downloads.osticket.com/plugin/auth-passthru.phar && \
+ wget -nv -O upload/include/plugins/storage-fs.phar https://s3.amazonaws.com/downloads.osticket.com/plugin/storage-fs.phar && \
+ wget -nv -O upload/include/plugins/storage-s3.phar https://s3.amazonaws.com/downloads.osticket.com/plugin/storage-s3.phar && \
+ wget -nv -O upload/include/plugins/audit.phar https://s3.amazonaws.com/downloads.osticket.com/plugin/audit.phar && \
+ # Download community plugins (https://forum.osticket.com/d/92286-resources-for-osticket)
+ ## Archiver
+ git clone https://github.com/clonemeagain/osticket-plugin-archiver upload/include/plugins/archiver && \
+ ## Attachment Preview
+ git clone https://github.com/clonemeagain/attachment_preview upload/include/plugins/attachment-preview && \
+ ## Auto Closer
+ git clone https://github.com/clonemeagain/plugin-autocloser upload/include/plugins/auto-closer && \
+ ## Fetch Note
+ git clone https://github.com/bkonetzny/osticket-fetch-note upload/include/plugins/fetch-note && \
+ ## Field Radio Buttons
+ git clone https://github.com/Micke1101/OSTicket-plugin-field-radiobuttons upload/include/plugins/field-radiobuttons && \
+ ## Mentioner
+ git clone https://github.com/clonemeagain/osticket-plugin-mentioner upload/include/plugins/mentioner && \
+ ## Multi LDAP Auth
+ git clone https://github.com/philbertphotos/osticket-multildap-auth upload/include/plugins/multi-ldap && \
+ mv upload/include/plugins/multi-ldap/multi-ldap/* upload/include/plugins/multi-ldap/ && \
+ rm -rf upload/include/plugins/multi-ldap/multi-ldap && \
+ ## Prevent Autoscroll
+ git clone https://github.com/clonemeagain/osticket-plugin-preventautoscroll upload/include/plugins/prevent-autoscroll && \
+ ## Rewriter
+ git clone https://github.com/clonemeagain/plugin-fwd-rewriter upload/include/plugins/rewriter && \
+ ## Slack
+ git clone https://github.com/clonemeagain/osticket-slack upload/include/plugins/slack && \
+ ## Teams (Microsoft)
+ git clone https://github.com/ipavlovi/osTicket-Microsoft-Teams-plugin upload/include/plugins/teams && \
# Create msmtp log
touch /var/log/msmtp.log && \
chown www-data:www-data /var/log/msmtp.log && \
# File upload permissions
mkdir -p /var/tmp/nginx && \
- chown nginx:www-data /var/tmp/nginx && chmod g+rx /var/tmp/nginx
+ chown nginx:www-data /var/tmp/nginx && chmod g+rx /var/tmp/nginx && \
+ # Cleanup
+ rm -rf /data/osTicket && \
+ find . \( -name ".git" -o -name ".gitignore" -o -name ".gitmodules" -o -name ".gitattributes" \) -exec rm -rf -- {} + && \
+ rm -rf /var/cache/apk/* && \
+ apk del .build-deps
COPY files/ /
VOLUME ["/data/upload/include/plugins","/data/upload/include/i18n","/var/log/nginx"]
EXPOSE 80
-CMD ["/data/bin/start.sh"]
+CMD ["/data/bin/start.sh"]
\ No newline at end of file
diff --git a/README.md b/README.md
index 595faee..8acf3cd 100644
--- a/README.md
+++ b/README.md
@@ -7,14 +7,14 @@ Docker image for running version 1.14.3 of [OSTicket](http://osticket.com/).
This image has been created from the original docker-osticket image by [Petter A. Helset](mailto:petter@helset.eu).
-It has a few modifications:
+# Features
- * Documentation added, hurray!
- * Base OS image fixed to Alpine Linux
- * AJAX issues fixed that made original image unusable
- * Now designed to work with a linked [MySQL](https://registry.hub.docker.com/u/library/mysql/) docker container.
+ * Based on Alpine Linux
+ * Works with linked [MySQL](https://registry.hub.docker.com/u/library/mysql/) docker container.
* Automates configuration file & database installation
* EMail support
+ * Support for docker secrets
+ * Comes with almost all available plugins and languages
OSTicket is being served by [nginx](http://wiki.nginx.org/Main) using [PHP-FPM](http://php-fpm.org/) with PHP 7.2.
PHP7's [mail](http://php.net/manual/en/function.mail.php) function is configured to use [msmtp](http://msmtp.sourceforge.net/) to send out-going messages.
@@ -206,6 +206,14 @@ For example: `https://help.example.com/osticket`. Defaults to `http://localhost:
This has no effect if the database has already been installed. In this case, you should change the Helpdesk URL in
*System Settings and Preferences* in the admin control panel.
+`LANGUAGE`
+
+Set the system language. Choose one of the following language codes. Default is `en_US`.
+
+`bg` `cd` `en_GB` `es_MX` `fi` `hi` `is` `km` `lv` `nl` `ro` `sq` `sw` `ur_IN` `zh_CN` `ar` `bn` `da` `en_US` `et` `fr`
+`hr` `it` `ko` `mk` `no` `ru` `sr` `th` `ur_PK` `zh_TW` `ar_EG` `bs` `de` `es_AR` `eu` `gl` `hu` `ja` `mn` `pl` `sk`
+`sr_CS` `tr` `az` `ca` `el` `es_ES` `fa` `he` `id` `ka` `lt` `ms` `pt_BR` `sl` `sv_SE` `uk` `vi`
+
## Database Installation Only
The remaining environmental variables can be used as a convenience to provide defaults during the automated database
@@ -236,6 +244,17 @@ User name to use for automatically created administrative user. Defaults to 'ost
Password to use for automatically created administrative user. Defaults to 'Admin1'.
+# Docker secrets and passwords from files
+
+Instead of the environment variables with clear text passwords the following variables can be set to file paths inside
+the container to load passwords from these:
+
+`MYSQL_PASSWORD_FILE`, `INSTALL_SECRET_FILE`, `ADMIN_PASSWORD_FILE`, `SMTP_PASSWORD_FILE`
+
+This allows docker secrets where passwords are mounted under `/run/secrets/mydockersecretname`.
+
+A working example with external docker secret for docker swarm can be found in `docker-compose-swarm.yml` in the github repo.
+
# Modifications
This image was put together relatively quickly and could probably be improved to meet other use cases.
diff --git a/docker-compose-swarm.yml b/docker-compose-swarm.yml
new file mode 100644
index 0000000..54014e0
--- /dev/null
+++ b/docker-compose-swarm.yml
@@ -0,0 +1,74 @@
+# Docker stack example for a complete osticket with mysql server and docker secrets for testing purposes.
+# DO NOT USE IN PRODUCTION WITHOUT MODIFICATION!
+#
+# Docker secrets needs swarm
+# docker swarm init
+# Create a secret with
+# "printf "ThisIsADockerSecret" | docker secret create osticket.mysql_password -"
+# Run as docker stack
+# docker stack deploy --compose-file docker-compose.yml osticket
+---
+version: "3.4"
+services:
+ mariadb:
+ image: mariadb
+ secrets:
+ - osticket.mysql_root_password
+ - osticket.mysql_password
+ environment:
+ MYSQL_DATABASE: osticket
+ MYSQL_USER: osticket
+ # mariadb supports also docker secrets
+ MYSQL_PASSWORD_FILE: /run/secrets/osticket.mysql_password
+ MYSQL_ROOT_PASSWORD_FILE: /run/secrets/osticket.mysql_root_password
+# MYSQL_PASSWORD: osticketsecret
+# MYSQL_ROOT_PASSWORD: osticketsecret
+ networks:
+ - database
+ volumes:
+ - mysql_data:/var/lib/mysql
+ osticket:
+ image: rlieback/osticket
+ secrets:
+ - osticket.admin_password
+ - osticket.mysql_password
+ - osticket.install_secret
+ - osticket.smtp_password
+ environment:
+ ADMIN_USERNAME: ostadmin
+ MYSQL_HOST: mariadb
+ MYSQL_DATABASE: osticket
+ MYSQL_USER: osticket
+ # Change to en_US or comment out for default language
+ LANGUAGE: en_US
+ MYSQL_PASSWORD_FILE: /run/secrets/osticket.mysql_password
+ INSTALL_SECRET_FILE: /run/secrets/osticket.install_secret
+ ADMIN_PASSWORD_FILE: /run/secrets/osticket.admin_password
+ SMTP_PASSWORD_FILE: /run/secrets/osticket.smtp_password
+ # MYSQL_PASSWORD: osticket
+ # INSTALL_SECRET: mysecret897j98uemlrk09eums09duskd9jpsrds
+ # ADMIN_PASSWORD: admin
+ # SMTP_HOST: mymailserver.com
+ depends_on:
+ - mariadb
+ networks:
+ - database
+ ports:
+ - "8080:80"
+networks:
+ database:
+ driver: overlay
+ attachable: true
+volumes:
+ mysql_data:
+secrets:
+ osticket.admin_password:
+ external: true
+ osticket.mysql_password:
+ external: true
+ osticket.mysql_root_password:
+ external: true
+ osticket.smtp_password:
+ external: true
+ osticket.install_secret:
+ external: true
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..af833a5
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,34 @@
+# Docker compose example for a complete osticket with mysql server and docker secrets for testing purposes.
+# DO NOT USE IN PRODUCTION WITHOUT MODIFICATION!
+#
+---
+version: "3.4"
+services:
+ mariadb:
+ image: mariadb
+ environment:
+ MYSQL_DATABASE: osticket
+ MYSQL_USER: osticket
+ MYSQL_PASSWORD: osticketsecret
+ MYSQL_ROOT_PASSWORD: osticketsecret
+ volumes:
+ - mysql_data:/var/lib/mysql
+ osticket:
+ image: rlieback/osticket
+ environment:
+ ADMIN_USERNAME: ostadmin
+ MYSQL_HOST: mariadb
+ MYSQL_DATABASE: osticket
+ MYSQL_USER: osticket
+ MYSQL_PASSWORD: osticketsecret
+ # Change to en_US or comment out for default language
+ LANGUAGE: en_US
+ INSTALL_SECRET: mysecret897j98uemlrk09eums09duskd9jpsrds
+ ADMIN_PASSWORD: osticketsecret
+ # SMTP_HOST: mymailserver.com
+ depends_on:
+ - mariadb
+ ports:
+ - "8080:80"
+volumes:
+ mysql_data:
\ No newline at end of file
diff --git a/files/data/bin/install.php b/files/data/bin/install.php
index c48bb96..60446ac 100644
--- a/files/data/bin/install.php
+++ b/files/data/bin/install.php
@@ -3,7 +3,7 @@
// Portions (C) 2006-2015 osTicket
//Configure settings from environmental variables
-$_SERVER['HTTP_ACCEPT_LANGUAGE'] = getenv("LANGUAGE") ?: "en-us";
+$_SERVER['HTTP_ACCEPT_LANGUAGE'] = getenv("LANG") ?: "en-us";
$vars = array(
'name' => getenv("INSTALL_NAME") ?: 'My Helpdesk',
@@ -16,6 +16,7 @@
'username' => getenv("ADMIN_USERNAME") ?: 'ostadmin',
'passwd' => getenv("ADMIN_PASSWORD") ?: 'Admin1',
'passwd2' => getenv("ADMIN_PASSWORD") ?: 'Admin1',
+ 'lang_id' => getenv("LANGUAGE") ?: 'en_US',
'prefix' => getenv("MYSQL_PREFIX") ?: 'ost_',
'dbhost' => getenv("MYSQL_HOST") ?: 'mysql',
@@ -38,6 +39,36 @@
'config' => getenv("INSTALL_CONFIG") ?: '/data/upload/include/ost-sampleconfig.php'
);
+if ( getenv("ADMIN_PASSWORD_FILE") ) {
+ if ( file_exists(getenv("ADMIN_PASSWORD_FILE")) ) {
+ $vars['passwd'] = file_get_contents(getenv("ADMIN_PASSWORD_FILE"));
+ $vars['passwd2'] = file_get_contents(getenv("ADMIN_PASSWORD_FILE"));
+ } else {
+ err("Error: The file in ADMIN_PASSWORD_FILE doesn't exist!");
+ }
+}
+if ( getenv("MYSQL_PASSWORD_FILE") ) {
+ if ( file_exists(getenv("MYSQL_PASSWORD_FILE")) ) {
+ $vars['dbpass'] = file_get_contents(getenv("MYSQL_PASSWORD_FILE"));
+ } else {
+ err("Error: The file in MYSQL_PASSWORD_FILE doesn't exist!");
+ }
+}
+if ( getenv("SMTP_PASSWORD_FILE") ) {
+ if ( file_exists(getenv("SMTP_PASSWORD_FILE")) ) {
+ $vars['smtp_pass'] = file_get_contents(getenv("SMTP_PASSWORD_FILE"));
+ } else {
+ err("Error: The file in SMTP_PASSWORD_FILE doesn't exist!");
+ }
+}
+if ( getenv("INSTALL_SECRET_FILE") ) {
+ if (file_exists(getenv("INSTALL_SECRET_FILE"))) {
+ $vars['siri'] = file_get_contents(getenv("INSTALL_SECRET_FILE"));
+ } else {
+ err("Error: The file in INSTALL_SECRET_FILE doesn't exist!");
+ }
+}
+
//Script settings
define('CONNECTION_TIMEOUT_SEC', 180);
@@ -117,8 +148,8 @@ function convertStrToBool($varName, $default) {
if (!getenv("MYSQL_HOST")) {
err('Missing required environmental variable MYSQL_HOST');
}
- if (!getenv("MYSQL_PASSWORD")) {
- err('Missing required environmental variable: MYSQL_PASSWORD');
+ if (!getenv("MYSQL_PASSWORD") && !getenv("MYSQL_PASSWORD_FILE")) {
+ err('Missing required environmental variable: MYSQL_PASSWORD or MYSQL_PASSWORD_FILE');
}
// Always set mysqli.default_port for osTicket db_connect
diff --git a/files/data/supervisord.conf b/files/data/supervisord.conf
index 92f060f..3ccd539 100644
--- a/files/data/supervisord.conf
+++ b/files/data/supervisord.conf
@@ -1,5 +1,6 @@
[supervisord]
nodaemon=true
+user=root
[program:php-fpm]
command=php-fpm -c $PHP_INI_DIR -y /usr/local/etc/php-fpm.conf
diff --git a/files/etc/nginx/nginx.conf b/files/etc/nginx/nginx.conf
index 1ee1f1a..9dce5f0 100644
--- a/files/etc/nginx/nginx.conf
+++ b/files/etc/nginx/nginx.conf
@@ -26,6 +26,9 @@ http {
access_log /var/log/nginx/osticket-access.log;
error_log /var/log/nginx/osticket-error.log error;
+ real_ip_header X-Forwarded-For;
+ set_real_ip_from 0.0.0.0/0;
+
charset utf-8;
set $path_info "";