services: relay: build: . restart: unless-stopped volumes: - logs:/data/logs expose: - "8080" caddy: image: caddy:2-alpine restart: unless-stopped ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - caddy_data:/data - caddy_config:/config rustrak-db: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: ${RUSTRAK_POSTGRES_USER} POSTGRES_PASSWORD: ${RUSTRAK_POSTGRES_PASSWORD} POSTGRES_DB: ${RUSTRAK_POSTGRES_DB} volumes: - rustrak_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${RUSTRAK_POSTGRES_USER}"] interval: 5s timeout: 5s retries: 5 rustrak: image: abians7/rustrak-server:latest restart: unless-stopped depends_on: rustrak-db: condition: service_healthy environment: DATABASE_URL: postgres://${RUSTRAK_POSTGRES_USER}:${RUSTRAK_POSTGRES_PASSWORD}@rustrak-db/${RUSTRAK_POSTGRES_DB} RUSTRAK_LOG: ${RUSTRAK_LOG} SESSION_SECRET: ${RUSTRAK_SESSION_SECRET} CREATE_SUPERUSER: ${RUSTRAK_SUPERUSER} expose: - "8080" rustrak-ui: image: abians7/rustrak-ui:latest restart: unless-stopped depends_on: - rustrak environment: RUSTRAK_API_URL: http://rustrak:8080 expose: - "3000" volumes: logs: caddy_data: caddy_config: rustrak_data: