Skip to content

Docker Compose stacks

From Caelestis

Every stack starts with compose.yaml, which runs the backend and frontend. Additional Compose files replace the database or object-storage settings.

Stack files

DatabaseFilesystem objectsLocal MinIO objects
SQLitecompose.yamlBase + deploy/compose/s3.yaml
PostgreSQLBase + deploy/compose/postgres.yamlBase + PostgreSQL + S3 files
MariaDBBase + deploy/compose/mariadb.yamlBase + MariaDB + S3 files
Existing CNPGBase + deploy/compose/cnpg.yamlBase + CNPG + S3 files

For an external S3 provider, configure the bucket in .env instead of adding the MinIO file.

Set up once

Clone the repository and configure the common environment values as shown in Run with Docker. Then use the guide for your chosen stack:

Configure the stack before its first start. Selecting another adapter later does not migrate the existing database or objects.

Keep the same file list

Every operation must use the same Compose files. Save the list in .env to avoid repeating it.

For PostgreSQL and MinIO on Linux or macOS:

COMPOSE_FILE=compose.yaml:deploy/compose/postgres.yaml:deploy/compose/s3.yaml

On Windows, use semicolons instead of colons between paths.

Then run:

docker compose up --build -d --wait
docker compose ps
docker compose logs -f

Alternatively, supply the files explicitly each time:

docker compose -f compose.yaml -f deploy/compose/postgres.yaml -f deploy/compose/s3.yaml up --build -d --wait

Common operations

TaskCommand, with your configured file list
Start or rebuild from sourcedocker compose up --build -d --wait
Check healthdocker compose ps
Follow logsdocker compose logs -f
Stop and keep datadocker compose down
Pull configured release imagesdocker compose pull
Start pulled imagesdocker compose up -d --no-build --wait

Do not use down --volumes unless you want to delete the stack's data.

See Container images for release references and Deployment and upgrades for updates.

Caelestis ยท Published with Svartz