services: oikos: image: ghcr.io/ulsklyc/oikos:latest build: . # optional: use --build to build locally instead container_name: oikos restart: unless-stopped ports: - "0.0.0.0:3000:3000" volumes: - ${DATA_DIR:-./data}:/data - ${BACKUP_DIR:-./backups}:/backups env_file: - .env environment: - NODE_ENV=production - DB_PATH=${DB_PATH:-/data/oikos.db} - BACKUP_DIR=${BACKUP_DIR:-/backups} # Reverse proxy setup (Caddy, nginx, Traefik): # - Remove SESSION_SECURE=false (default is true) # - TRUST_PROXY is automatically set to 1 (trust one proxy hop) # Direct HTTP access (no reverse proxy): - SESSION_SECURE=false healthcheck: test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/health', r => process.exit(r.statusCode === 200 ? 0 : 1))"] interval: 30s timeout: 10s retries: 3 start_period: 10s