Docker Compose

Run the full Syntho stack on a single machine using Docker Compose.

chevron-rightWhat Docker Compose deployshashtag

The Compose bundle runs the full stack on one host:

  • Frontend (UI)

  • Backend

  • Core API

  • Ray

  • PostgreSQL (metadata)

  • Redis

Some bundles let you point to external PostgreSQL/Redis instead.

Deploy

1

Prerequisites

Make sure you meet the prerequisites before deploying.

2

Get the Docker Compose templates

Use the templates from the deployment-tools repository:

Key files in that folder:

Keep .env and docker-compose.yaml in the same directory.

Also keep the postgres/arrow-up-right folder next to them. It contains the init script that creates the required databases.

3

Authenticate to the container registry

Use the registry host and credentials provided by Syntho to login with:

docker login syntho.azurecr.io -u <USERNAME> -p <PASSWORD>
4

Configure .env

Edit .env in the same directory as docker-compose.yaml.

Set at least:

  • APPLICATION_VERSION: Syntho version to deploy.

  • LICENSE_KEY: your Syntho license key.

  • SECRET_KEY: secret used by Syntho security mechanisms.

  • USER_EMAIL: email for the initial admin user.

  • USER_PASSWORD: password for the initial admin user.

  • DB_PASSWORD: password for the bundled PostgreSQL (required by docker-compose.yaml).

circle-info

The default Compose bundle assumes DB_USER=syntho. Set DB_PASSWORD yourself.

Generate a SECRET_KEY (if needed, Syntho will provide one as well):

python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
circle-exclamation

Syntho uses secret keys for sessions and encryption.

Changing keys can break sessions.

It can also make previously stored encrypted values unreadable.

Plan key rotation:

  1. Back up PostgreSQL metadata databases.

  2. Stop traffic and running jobs.

  3. Rotate keys.

  4. Restart services.

  5. Verify login and basic workflows.

If you are unsure what do do, ask Syntho Support.

chevron-rightUI URL, ports, and HTTPShashtag

By default UI is exposed on port 3000 and the API on 8000.

If you terminate TLS in a reverse proxy, ensure:

  • The UI is configured for https.

  • Secure cookies are enabled when using HTTPS.

5

Start Syntho

docker compose up -d
6

Verify deployment

Check containers status with:

docker compose ps

Open the UI:

  • <FRONTEND_PROTOCOL>://<FRONTEND_DOMAIN>:<FRONTEND_PORT>

Use the admin credentials you configured in .env.

circle-info

The FRONTEND_DOMAIN / FRONTEND_PORT can be found in the .env

If this does not work, see Troubleshooting.

7

Back up PostgreSQL

Back up PostgreSQL Syntho application databases before first use to validate the process.

Next steps

Last updated

Was this helpful?