Deploy using Docker Compose

Deploy Syntho with Docker Compose

Use Docker Compose to run the full Syntho stack on one machine.

Syntho Docker images

The Docker Compose files reference these images in the Syntho Azure Container Registry:

  • Core API: syntho.azurecr.io/syntho-core-api:<VERSION>

  • Backend: syntho.azurecr.io/syntho-core-backend:<VERSION>

  • Frontend: syntho.azurecr.io/syntho-core-frontend:<VERSION>

  • Ray: syntho.azurecr.io/syntho-ray:<VERSION>

Make sure the version(s) configured in .env match the tags provided by Syntho.

Deployment steps

1

Get the Docker Compose files

Use the Docker Compose deployment templates from the deployment-tools repo:

Work from the files in that folder, including example.env.

2

Log in to the container registry

Authenticate before running docker compose up, so Docker can pull the images. Use the registry host and credentials provided by Syntho.

docker login <REGISTRY_HOST> -u <USERNAME> -p <PASSWORD>
3

Configure .env

Copy example.env to .env:

cp example.env .env

Required variables

Set at least:

  • APPLICATION_VERSION - Syntho version to deploy

  • LICENSE_KEY - your Syntho license key

  • SECRET_KEY - secret key used by Syntho security mechanisms

  • USER_EMAIL - email for the initial admin user

  • USER_PASSWORD - password for the initial admin user

These credentials create the first admin user on first startup.

circle-info

Some older Compose bundles use ADMIN_EMAIL / ADMIN_PASSWORD instead of USER_EMAIL / USER_PASSWORD. Use the variable names that exist in your example.env.

Set your license key

LICENSE_KEY=<LICENSE KEY>

Set a SECRET_KEY

Use the secret key provided by Syntho, or generate one:

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

Then set:

SECRET_KEY=<SECRET KEY>
circle-exclamation
4

(Optional) Domain, protocol, and ports

If you don’t run on localhost:3000, set:

FRONTEND_DOMAIN=<hostname-or-ip>
FRONTEND_PROTOCOL=http   # set to https when using TLS
SECURE_COOKIES=False     # set to True when using https
FRONTEND_PORT=3000
BACKEND_PORT=8000

Terminate TLS using your reverse proxy or load balancer.

chevron-rightAdvanced configuration (databases, Redis, Ray)hashtag

Most deployments can use the defaults in example.env. Only change these when Syntho Support asks you to.

Examples you might see in .env:

  • External Postgres / Redis configuration for Core API and Backend

  • Core API encryption key (often a Fernet key)

  • Ray connection settings

Last updated

Was this helpful?