version: '3.8' services: nextav: image: ${REGISTRY_URL:-192.168.2.212:3000}/${IMAGE_NAME:-tigeren/nextav}:${IMAGE_TAG:-latest} container_name: nextav-app restart: unless-stopped ports: - "3000:3000" volumes: - ${DB_PATH:-./data}:/app/data - ${MEDIA_PATH:-./media}:/app/media environment: - NODE_ENV=production - DATABASE_URL=${DATABASE_URL:-file:///app/data/nextav.db} - NEXT_PUBLIC_MEDIA_ROOT=${NEXT_PUBLIC_MEDIA_ROOT:-/app/media} - NEXTAUTH_SECRET=${NEXTAUTH_SECRET} - NEXTAUTH_URL=${NEXTAUTH_URL} healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3000/api/health"] interval: 30s timeout: 10s retries: 3 start_period: 40s networks: - nextav-network nginx: image: nginx:alpine container_name: nextav-nginx restart: unless-stopped ports: - "${HTTP_PORT:-80}:80" - "${HTTPS_PORT:-443}:443" volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro - ${SSL_CERT_PATH:-./ssl/cert.pem}:/etc/nginx/ssl/cert.pem:ro - ${SSL_KEY_PATH:-./ssl/key.pem}:/etc/nginx/ssl/key.pem:ro depends_on: - nextav networks: - nextav-network networks: nextav-network: driver: bridge