version: '3.8' services: app: build: . ports: - "8100:5000" environment: - FLASK_ENV=production - DATABASE_URL=postgresql://moto_user:moto_pass@db:5432/moto_adventure - SECRET_KEY=your-super-secret-key-change-this volumes: - /opt/moto_uploads:/opt/site/flask-moto-adventure/uploads depends_on: - db restart: unless-stopped db: image: postgres:15 environment: - POSTGRES_DB=moto_adventure - POSTGRES_USER=moto_user - POSTGRES_PASSWORD=moto_pass volumes: - /opt/moto_postgres:/var/lib/postgresql/data restart: unless-stopped nginx: image: nginx:alpine ports: - "80:80" - "443:443" volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ./uploads:/opt/site/flask-moto-adventure/uploads:ro depends_on: - app restart: unless-stopped volumes: postgres_data: