This compose file will not start until you supply passwords. That is
deliberate — an earlier version shipped with password hard-coded, and a
file like this tends to get deployed exactly as written.
cp .env.example .env
Then edit .env and replace every CHANGEME with a different strong
password. To generate them:
openssl rand -base64 24
If you skip this step, docker compose up stops immediately with a
message naming the variable that is missing — it will not start an
unprotected database. Keep .env out of version control (the included
.gitignore already does this).
Note that these passwords are only applied when the database containers
are created for the first time. Changing .env afterwards does not
change an existing database's password.
/opt/openises/
/opt/openises/cad-web/
/opt/openises/avl/
/opt/openises/avl/logs/
Files you must provide:
/opt/openises/cad-web/ - fill with Tickets Core
/opt/openises/avl/traccar.xml
A default traccar.xml can be generated following traccar-docker's documentation:
docker run \
--rm \
--entrypoint cat \
traccar/traccar:latest \
/opt/traccar/conf/traccar.xml > /var/docker/traccar/traccar.xml
Except redirect/move to /opt/openises/avl/traccar.xml instead.
Configure traccar.xml by following Traccar's documentation. To use Traccar data in Tickets, you must run Traccar using a SQL DB. Follow their instructions for using SQL instead of H2.
Set your passwords in .env (see the top of this file) and change the example.org domains in docker-compose.yml to your own.
Remember that this docker-compose is for demonstration only. Do not commit secrets and passwords to public locations, and disable database administration tools if you don't need to use them. The dba-adminer and dba-pma services in particular expose database administration to the internet through the reverse proxy — remove them unless you have a specific reason to keep them.
For production deployments, use of configuration management tools that gaurantee idempotency such as with Ansible playbooks is strongly recommended. Your configuration management should sync files as needed with correct file/directory permissions, and when an existing install is recognized:
- disable or remove
install.php, - write-protect
incs/, - and especially
incs/mysql.inc.php.
Default accounts after fresh installations:
Tickets: admin/admin
Tickets: guest/guest
Traccar: admin/admin
Change all three passwords immediately after the first login, before the system is reachable from anywhere untrusted. These defaults are public knowledge.