rinkp/osticket-dockerized

By rinkp

Updated 27 days ago

self-contained osTicket installation that can be set-up using environment variables

Image
Content management system
1

10K+

rinkp/osticket-dockerized repository overview

osTicket-dockerized

This is a Docker container containing osTicket.

Available for linux/amd64 and linux/arm64 as rinkp/osticket-dockerized and ghcr.io/rinkp/osticket-dockerized

An example docker-compose.yml file is provided as well. This includes a local database instance, but you can also deploy the image with an external database server.
When using the local database instance, note that the first start will take an extra 30 seconds since MariaDB has to start.
In this example compose file, TLS is enabled for the MariaDB Server. This only works in combination with a -patches image; without modifications, osTicket does not use SSL during setup.. In the example, one-way verification is used (only the server has a key). To enable bidirectional support, also configure OST_DBSSLCERT and OST_DBSSLKEY and set this up in your database.

Configuration happens through environment variables. These are listed below. Additionally, it is possible to store a ost-config.php file in /config/ost-config.php (e.g. file mount).

Variable nameDefaultDescription
OST_SECRET_SALTNone, mandatory32-character random string (generate here)
OST_ADMIN_EMAILNone, mandatoryEmail address used for database connection errors as well as the username for the first admin user
OST_HELPDESK_URLNone, optionalURL of this osticket instance, used as 'helpdesk URL'
OST_HELPDESK_ONLINENone, optionalBoolean to indicate whether the helpdesk is accessible to non-admins
OST_ADMIN_PASSWDNone, mandatoryThe initial password for the admin user
OST_DBTYPEmysqlMySQL Database type
OST_DBHOST127.0.0.1:3306MySQL Database host
OST_DBNAMEosticketMySQL Database name
OST_DBUSERrootMySQL Database user
OST_DBPASS MySQL Database password
OST_TABLE_PREFIXost_MySQL Database prefix
OST_DBSSLCA
OST_DBSSLCERT
OST_DBSSLKEY
None, optionalMySQL SSL settings (in case MySQL server requires certificate connections). Paths to files (e.g. in a mount on /config).
OST_MAIL_EOL\nChange line ending in case your email server requires other line endings
OST_TRUSTED_PROXIES To detect IPs and protocols correctly in case osTicket is behind a reverse proxy (useful for lockouts and forcing HTTPS)
OST_PLUGINS_STORAGEFS_PLUGINplugins/storage-fs.pharPath to the filesystem storage plugin (set to blank to disable)
OST_PLUGINS_STORAGEFS_PATH/var/www/attachmentsPath where filesystem attachments are stored
OST_LOCAL_NETWORKS127.0.0.0/24Whitelist authentication for these IPs
OST_SESSION_SESSIDOSTSESSIDSession name for session cookie
OST_SESSION_BACKEND
OST_MEMCACHE_SERVERS
db
osTicket supports memcache as SESSION_BACKEND if the 'memcache' pecl extesion is installed. This also requires MEMCACHE_SERVERS to be configured as well.

Additionally, the container is configured to use 'opcache' for performance improvements. The settings for this can be modified using these environment variables.

Variable nameDefaultDescription
PHP_OPCACHE_VALIDATE_TIMESTAMPS0Whether to check if a PHP file has been changed before executing using the cache. If 0, you have to restart the container after updates to PHP files.
PHP_OPCACHE_MAX_ACCELERATED_FILES16229The maximum number of files in the cache
PHP_OPCACHE_MEMORY_CONSUMPTION384The amount of memory (in MB) that can be used by 'opcache'
PHP_OPCACHE_MAX_WASTED_PERCENTAGE10The maximum percentage of wasted memory before 'opcache' is cleared

Using this repo

This repository contains 2 submodules, pull them using git submodule update --init --recursive

Noteworthy changes

Tags containing -patches are built from a fork of osTicket: https://github.com/rinkp/osticket-dockerized. Updates are rebased from the original to allow for easy comparisons. See the changes for 1.18.2 here

Tag summary

Content type

Image

Digest

sha256:f8244c3fb

Size

38.1 MB

Last updated

27 days ago

docker pull rinkp/osticket-dockerized