docker-compose.yml starts a PostgreSQL container alongside Atrium and wires them together automatically.
Generate a secret
Before you start, generate a value forBETTER_AUTH_SECRET:
Built-in database
The default configuration starts Atrium with a dedicated PostgreSQL 16 container.docker-compose.yml, then start Atrium:
http://localhost:8080 and create your account.
External database
If you already have a PostgreSQL instance, skip the bundledpostgres service and point Atrium at your existing database:
The database schema is applied automatically on startup. If your connection goes through a pooler like PgBouncer, set
SKIP_DB_PUSH=true and add a DIRECT_URL pointing to a non-pooled connection. See Docker for details.Volume mounts
Docker manages these as named volumes. The data lives on your host under Docker’s volume directory and persists across container restarts and image updates.