version: '3.8' # Shared environment variables x-common-env: &common-env STEGASOO_CHANNEL_KEY: ${STEGASOO_CHANNEL_KEY:-} services: # ============================================================================ # Web UI (Flask) # ============================================================================ web: build: context: . target: web container_name: stegasoo-web ports: - "5000:5000" environment: <<: *common-env FLASK_ENV: production # Authentication (v4.0.2) STEGASOO_AUTH_ENABLED: ${STEGASOO_AUTH_ENABLED:-true} STEGASOO_HTTPS_ENABLED: ${STEGASOO_HTTPS_ENABLED:-false} STEGASOO_HOSTNAME: ${STEGASOO_HOSTNAME:-localhost} volumes: # Persist auth database and SSL certs (v4.0.2) - stegasoo-web-data:/app/frontends/web/instance - stegasoo-web-certs:/app/frontends/web/certs restart: unless-stopped deploy: resources: limits: memory: 768M reservations: memory: 384M # ============================================================================ # REST API (FastAPI) # ============================================================================ api: build: context: . target: api container_name: stegasoo-api ports: - "8000:8000" environment: <<: *common-env restart: unless-stopped deploy: resources: limits: memory: 768M reservations: memory: 384M # Named volumes for persistent data volumes: stegasoo-web-data: driver: local stegasoo-web-certs: driver: local