Configuring Docker Compose
The STELLA Server is also primarily configured via Docker Compose and a set of environment variables.
Both configuration and runtime behavior are controlled through the docker-compose.yml files provided in the repository.
Important
Two Docker Compose files are provided:
docker-compose.yml— standard deploymentdocker-compose-dev.yml— development deployment with hot reloadingThe same environment variables are used by both files.
The choice of file only affects developer ergonomics (e.g. local code reloads), not system behavior or configuration semantics.
Setting up Credentials
Make sure to change the username and passwords in the Dockerfile for the following env variables:
Important Security Notice
Before deploying the STELLA Server in any environment, you must change the default usernames and passwords defined for the following environment variables. The provided values are placeholders and are not safe for production use.
| Environment Variable | Description |
|---|---|
ADMIN_MAIL |
Email address for the administrator account |
ADMIN_PASS |
Password for the administrator account |
SITE_MAIL |
Email address for the site account |
SITE_PASS |
Password for the site account |
EXPERIMENTER_MAIL |
Email address for the experimenter account |
EXPERIMENTER_PASS |
Password for the experimenter account |
These credentials are used to initialize user accounts in the STELLA system.
Replace all default values in the Dockerfile or Docker Compose configuration before starting the containers to prevent unauthorized access.
Full Docker Compose Reference
The complete Docker Compose configuration is included directly from the repository:
name: stella
networks:
stella-shared:
name: stella-shared
driver: bridge
ipam:
config:
- subnet: 192.168.100.0/24
services:
server:
build: ./web
expose:
- "8000"
ports:
- "8000:8000"
networks:
stella-shared:
aliases:
- stella-server
environment:
- FLASK_APP=app/app
- FLASK_CONFIG=postgres
- POSTGRES_USER=postgres
- POSTGRES_PW=change-me
- POSTGRES_DB=postgres
- POSTGRES_URL=db-server:5432
- SECRET_KEY=change-me
- AUTOMATOR_GH_KEY=
- ADMIN_MAIL=admin@stella-project.org
- ADMIN_PASS=pass
- SITE_MAIL=site@stella-project.org
- SITE_PASS=pass
- EXPERIMENTER_MAIL=experimenter@stella-project.org
- EXPERIMENTER_PASS=pass
command: gunicorn -w 2 --timeout 60 -b :8000 'app.app:create_app()'
depends_on:
- db-server
db-server:
image: postgres:16
expose:
- "5432"
ports:
- "5432:5432"
networks:
- stella-shared
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=change-me
- POSTGRES_DB=postgres
nginx:
restart: always
build: ./nginx
ports:
- "80:80"
# - 443:443
# volumes:
# - /etc/ssl:/etc/ssl
# - /etc/letsencrypt/live:/etc/letsencrypt/live
# - /etc/letsencrypt/archive:/etc/letsencrypt/archive
networks:
- stella-shared
depends_on:
- server