GeoGuessrMCP/docker-compose.prod.yml
Claude 593c668d96
Add VPS production deployment with nginx-proxy-manager support
This commit adds comprehensive support for deploying the GeoGuessr MCP Server
to a VPS alongside existing nginx-proxy-manager setup (e.g., Firefly III).

Changes:
- Updated docker-compose.prod.yml to use existing firefly_network
- Removed standalone nginx service (uses nginx-proxy-manager instead)
- Changed from ports to expose for internal-only access
- Switched default to pre-built Docker Hub images

New files:
- DEPLOYMENT.md: Comprehensive deployment guide with SSL setup
- .env.production: Production-ready environment configuration template
- deploy.sh: Automated deployment script with health checks

Updated files:
- README.md: Added quick reference to VPS deployment with nginx-proxy-manager
- docker-compose.prod.yml: Simplified for proxy manager integration

Deployment features:
- Automatic SSL certificate management via nginx-proxy-manager
- Let's Encrypt integration for HTTPS
- Shared Docker network with existing services
- Persistent schema storage
- Health checks and logging
- Easy updates via deploy script

This setup allows users to deploy the MCP server on the same VPS as other
Docker services while using a single nginx-proxy-manager for SSL/HTTPS.
2025-11-29 07:29:54 +00:00

51 lines
1.2 KiB
YAML

# Production deployment for VPS with existing nginx-proxy-manager
# This configuration connects to an existing nginx-proxy-manager for SSL/HTTPS
services:
geoguessr-mcp:
# Option 1: Build locally (use for initial setup or development)
# build:
# context: .
# dockerfile: Dockerfile
# Option 2: Use pre-built image from Docker Hub (recommended for production)
# Update this with your Docker Hub username
image: ${DOCKER_USERNAME:-yourusername}/geoguessr-mcp:${IMAGE_TAG:-latest}
container_name: geoguessr-mcp-server
restart: unless-stopped
# Use expose instead of ports - only accessible through proxy
expose:
- "8000"
env_file:
- .env
volumes:
- geoguessr-schemas:/app/data/schemas
healthcheck:
test: [ "CMD", "curl", "-f", "http://localhost:8000/health" ]
interval: 30s
timeout: 10s
retries: 3
start_period: 15s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "5"
# Connect to the same network as nginx-proxy-manager
networks:
- firefly_network
volumes:
geoguessr-schemas:
name: geoguessr-mcp-schemas-prod
networks:
firefly_network:
external: true