services: # Certificate generator - runs once to create certificates certgen: image: alpine:latest container_name: timetracker-certgen volumes: - ./nginx/ssl:/certs - ./scripts:/scripts:ro command: sh /scripts/generate-certs.sh restart: "no" nginx: image: nginx:alpine container_name: timetracker-nginx ports: - "80:80" - "443:443" volumes: - ./nginx/conf.d:/etc/nginx/conf.d:ro - ./nginx/ssl:/etc/nginx/ssl:ro depends_on: certgen: condition: service_completed_successfully app: condition: service_started restart: unless-stopped app: ports: [] # nginx handles all ports environment: - WTF_CSRF_SSL_STRICT=true - SESSION_COOKIE_SECURE=true - CSRF_COOKIE_SECURE=true restart: unless-stopped