Files
mtgonline/backend/DOCKER_DEPLOYMENT_STATUS.md
T
akadmin 0c805b1442 Enhance Docker deployment: structured logging, health checks, resource limits, entrypoint script
- Add structured logging config with JSON/text format support
- Create docker-entrypoint.sh with dependency health checks
- Enhance /health endpoint with DB and Redis connectivity checks
- Add resource limits (CPU/memory) for all services
- Add network aliases for service discovery
- Add container hostnames for better identification
- Reduce health check timeout from 20s to 5s
- Add build metadata labels to Dockerfile
- Use ENTRYPOINT for dependency checking before app startup
- Log rotation: 50m per file, 5 files max
2026-08-25 03:14:30 +00:00

2.2 KiB

MTG Online Backend - Docker Deployment

Project Overview

MTG Online backend REST API with FastAPI, SQLAlchemy, and Alembic migrations. Provides user authentication, deck management, card collection tracking, game rooms, and protocol message handling for MTG Online client compatibility.

Docker Deployment Status

Current State

  • Docker Compose Stack: Configured and tested
  • Port Mapping: 8990:8000 (backend exposed on host port 8990)
  • Services: 4 containers (backend, postgres, postgres_mtgdata, postgres_mirror, redis)
  • Logging: JSON file logging with rotation (10MB max, 3 files)

Recent Fixes Applied

  1. Database URL Fix: Updated .env to use Docker service names instead of localhost

    • postgres_mtgdata for mtgdata database
    • postgres for mtgo_platform database
    • postgres_mirror for mtgo_mirror database
  2. Docker Build: Successfully built backend image

  3. Service Health: All containers started and became healthy

Known Issues

  • Backend Connection Error: Backend container couldn't connect to PostgreSQL due to localhost vs Docker service name mismatch
  • Fix Applied: Updated .env file with correct Docker service names
  • Status: Fix applied but NOT yet re-tested after restart

Next Steps Required

  1. Restart Docker containers with updated .env
  2. Verify backend can connect to all three PostgreSQL databases
  3. Test health endpoint on port 8990
  4. Test authentication and CRUD operations
  5. Verify logging output

Architecture

  • Primary Database: mtgo_platform (user data, decks, cards)
  • MTG Data Database: mtgdata (canonical card data)
  • Mirror Database: mtgo_mirror (fast deckbuilding queries)
  • Cache: Redis for session/cache management
  • Async Driver: asyncpg for async SQLAlchemy support

Commands

# Start stack
cd /home/wall-o/projects/mtgonline/backend
docker compose up -d

# View logs
docker compose logs -f backend
docker compose logs -f postgres

# Stop stack
docker compose down

# Rebuild after changes
docker compose up -d --build

API Access