Deploying with Docker Compose


We have two docker-compose.yml files, one with Postgres and one without. Tonic requires access to a Postgres instance to store user data, DB connection data, and fingerprints. When running in a cloud service (e.g. AWS), we recommend that you use your cloud providers managed database service (e.g. RDS for AWS). Therefore you should pick the docker-compose.yml without Postgres. If you're running locally, we recommend using the docker-compose.yml with Postgres.

Contact [email protected] to get access to our docker repositories as well as our docker-compose.yml file.

On the box where you're going to deploy Tonic, login to with credentials Tonic provides:

$ docker login

Copy docker-compose.yml into your current directory and update the file with the correct connection variables

If you are using an existing database or setting one up manually for Tonic, the user credentials provided to Tonic need permission to create a database, create tables, insert, and select.

Start the docker containers:

$ docker-compose up -d

Your instance of Tonic is now available on Port 80 and 443. If you are having trouble connecting, check that your instance allows inbound traffic on Port 80 and 443. Additionally, if you would like to modify the port you can do so in the docker-compose.yml file.

If you are running Tonic in a cloud environment we strongly suggest you enable SSL (or protect traffic to the machine box in some other way, such as making the instance available only over VPN). Your cloud provider should have instructions on how to accomplish this.


To get the latest version of Tonic run the following:

$ docker-compose down
$ docker-compose pull && docker-compose up -d