services: bot: &bot image: nowplaybot:latest build: . env_file: - .env.production environment: - OAUTH_JSON restart: unless-stopped command: > sh -c "echo '${OAUTH_JSON}' | base64 -d > /app/oauth.json && python -m alembic upgrade head && python app/__main__.py" callback_listener: <<: *bot ports: - "8080:8080" labels: - traefik.enable=true - traefik.http.routers.music_mootfrost_dev.rule=Host(`music.mootfrost.dev`) - traefik.http.services.music_mootfrost_dev.loadbalancer.server.port=8080 command: sh -c "echo '${OAUTH_JSON}' | base64 -d > /app/oauth.json && python app/callback_listener.py" db: image: postgres:17.4-alpine volumes: - db_data:/var/lib/postgresql/data/pgdata restart: unless-stopped ports: - "127.0.0.1:5431:5432" environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: owl POSTGRES_DB: nowplaybot PGDATA: /var/lib/postgresql/data/pgdata volumes: db_data: