# --config (file) param is set to empty so that eaglecast only uses the env vars (below) for config.
# --install --idempotent ensures that DB installation happens only once on an empty DB, on the first ever start.
# --upgrade automatically runs any DB migrations when a new image is pulled.
environment:# The same params as in config.toml are passed as env vars here.
EAGLECAST_app__address:0.0.0.0:9000
EAGLECAST_db__user:*db-user
EAGLECAST_db__password:*db-password
EAGLECAST_db__database:*db-name
EAGLECAST_db__host:db
EAGLECAST_db__port:5432
EAGLECAST_db__ssl_mode:disable
EAGLECAST_db__max_open:25
EAGLECAST_db__max_idle:25
EAGLECAST_db__max_lifetime:300s
TZ:Etc/UTC
EAGLECAST_ADMIN_USER:${EAGLECAST_ADMIN_USER:-} # If these (optional) are set during the first `docker compose up`, then the Super Admin user is automatically created.
EAGLECAST_ADMIN_PASSWORD:${EAGLECAST_ADMIN_PASSWORD:-} # Otherwise, the user can be setup on the web app after the first visit to http://localhost:9000
volumes:
- ./uploads:/eaglecast/uploads:rw # Mount an uploads directory on the host to /eaglecast/uploads inside the container.
# To use this, change directory path in Admin -> Settings -> Media to /eaglecast/uploads
# Postgres database
db:
image:postgres:17-alpine
container_name:eaglecast_db
restart:unless-stopped
ports:
- "127.0.0.1:5432:5432"# Only bind on the local interface. To connect to Postgres externally, change this to 0.0.0.0