Rackula compose example.
Educational example only. Review every volume path, port, and credential before you run this. Do not copy production secrets into your wiki or git repo.
_shared/.env for non-secrets, _shared/.secret for credentialsmkdir -p /path/to/docker/stacks/rackula
cd /path/to/docker/stacks/rackula
# paste compose.yaml below, then:
docker compose pull
docker compose up -d
services:
rackula:
image: ghcr.io/rackulalives/rackula:latest
container_name: Rackula
env_file:
- /path/to/docker/stacks/_shared/.env
- /path/to/docker/stacks/_shared/.secret
healthcheck:
test: ["CMD-SHELL", "nc -z 127.0.0.1 8080 || exit 1"]
interval: 10s
timeout: 5s
retries: 3
start_period: 90s
environment:
- API_HOST=rackula-api
- API_PORT=3001
- RACKULA_LISTEN_PORT=8080
logging:
driver: json-file
options:
max-file: ${DOCKERLOGGING_MAXFILE:-10} # Max number of log files
max-size: ${DOCKERLOGGING_MAXSIZE:-200k} # Max file size
ports:
- 30010:8080
depends_on:
- rackula-api
restart: on-failure:5
rackula-api:
image: ghcr.io/rackulalives/rackula-api:latest
container_name: Rackula-API
user: "1024:100"
env_file:
- /path/to/docker/stacks/_shared/.env
- /path/to/docker/stacks/_shared/.secret
volumes:
- /path/to/docker/data/rackula:/data:rw
environment:
# CORS_ORIGIN comes from _shared/.env via env_file
- DATA_DIR=/data
- PORT=3001
logging:
driver: json-file
options:
max-file: ${DOCKERLOGGING_MAXFILE:-10} # Max number of log files
max-size: ${DOCKERLOGGING_MAXSIZE:-200k} # Max file size
restart: on-failure:5
_shared/.secret.