services: backend: build: ./backend container_name: audiolib-backend restart: unless-stopped env_file: .env volumes: - ./data:/app/data - ${AUDIOFILES_PATH:-./audiofiles}:/audiofiles:ro expose: - "8000" depends_on: [] healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 30s timeout: 10s retries: 3 frontend: build: ./frontend container_name: audiolib-frontend restart: unless-stopped expose: - "80" nginx: image: nginx:1.25-alpine container_name: audiolib-nginx restart: unless-stopped ports: - "${SERVER_PORT:-3000}:80" volumes: - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro depends_on: - backend - frontend