services: api: image: ${API_IMAGE:-ghcr.io/shirsakm/nightlio-api:latest} container_name: nightlio-api restart: unless-stopped environment: - RAILWAY_ENVIRONMENT=production - SECRET_KEY=${SECRET_KEY:-your-secret-key-change-this} - JWT_SECRET=${JWT_SECRET:-your-jwt-secret-change-this} - CORS_ORIGINS=http://localhost:5173,http://localhost:5000 - ENABLE_GOOGLE_OAUTH=${ENABLE_GOOGLE_OAUTH:-0} - DEFAULT_SELF_HOST_ID=${DEFAULT_SELF_HOST_ID:-selfhost_default_user} - DATABASE_PATH=/app/data/nightlio.db - GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID:-} - GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET:-} - GOOGLE_CALLBACK_URL=${GOOGLE_CALLBACK_URL:-} - PORT=5000 volumes: - nightlio_data:/app/data networks: - nightlio-network ports: - "5000:5000" healthcheck: test: ["CMD", "python", "-c", "import requests; requests.get('http://localhost:5000/api/')"] interval: 30s timeout: 10s retries: 3 frontend: image: ${WEB_IMAGE:-ghcr.io/shirsakm/nightlio-frontend:latest} container_name: nightlio-frontend restart: unless-stopped ports: - "5173:80" depends_on: api: condition: service_healthy networks: - nightlio-network healthcheck: test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost/"] interval: 30s timeout: 3s retries: 3 networks: nightlio-network: driver: bridge volumes: nightlio_data: driver: local