QrRapido/docker-compose.yml
Ricardo Carneiro a3238ca6c5 feat: MCP server + landing page + OAuth returnUrl fix
- Add Node.js MCP server (stdio + HTTP/SSE) with generate_qr and generate_pix_qr tools
- Add landing pages PT/EN at /mcp and /mcp/en with hreflang SEO
- Fix OAuth returnUrl via RedirectUri query param (state was always null in callback)
- Fix API key requests bypassing web credit check (use rate limiter instead)
- Add /api/mcp nginx route + Docker Swarm service for n8n cloud integration
- Auto-create API key on first OAuth login with TempData display
- Add UseDefaultFiles() for /mcp → /mcp/index.html serving
- Fix Serilog console log level in Development (was Error, now Info for app logs)
- Add /api/v1/QRManager/me endpoint for API key validation
- Update CI/CD to build and deploy qrrapido-mcp image alongside .NET app

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 21:23:50 -03:00

98 lines
2.4 KiB
YAML

version: '3.8'
services:
qrrapido:
build:
context: .
dockerfile: Dockerfile
ports:
- "5000:80"
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ConnectionStrings__MongoDB=mongodb://mongo:27017/qrrapido
- ConnectionStrings__Redis=redis:6379
- Authentication__Google__ClientId=${GOOGLE_CLIENT_ID}
- Authentication__Google__ClientSecret=${GOOGLE_CLIENT_SECRET}
- Authentication__Microsoft__ClientId=${MICROSOFT_CLIENT_ID}
- Authentication__Microsoft__ClientSecret=${MICROSOFT_CLIENT_SECRET}
- Stripe__PublishableKey=${STRIPE_PUBLISHABLE_KEY}
- Stripe__SecretKey=${STRIPE_SECRET_KEY}
- Stripe__WebhookSecret=${STRIPE_WEBHOOK_SECRET}
- Stripe__PriceId=${STRIPE_PRICE_ID}
depends_on:
- mongo
- redis
volumes:
- ./logs:/app/logs
networks:
- qrrapido-network
restart: unless-stopped
mongo:
image: mongo:7.0
container_name: qrrapido-mongo
ports:
- "27017:27017"
environment:
- MONGO_INITDB_DATABASE=qrrapido
- MONGO_INITDB_ROOT_USERNAME=admin
- MONGO_INITDB_ROOT_PASSWORD=password123
volumes:
- mongo_data:/data/db
- ./scripts/mongo-init.js:/docker-entrypoint-initdb.d/mongo-init.js:ro
networks:
- qrrapido-network
restart: unless-stopped
redis:
image: redis:7.2-alpine
container_name: qrrapido-redis
ports:
- "6379:6379"
command: redis-server --maxmemory 256mb --maxmemory-policy allkeys-lru --appendonly yes
volumes:
- redis_data:/data
networks:
- qrrapido-network
restart: unless-stopped
mcp-server:
build:
context: ./mcp-server
dockerfile: Dockerfile
ports:
- "3000:3000"
environment:
- QR_BASE_URL=https://qrrapido.site
- PORT=3000
networks:
- qrrapido-network
restart: unless-stopped
depends_on:
- qrrapido
nginx:
image: nginx:alpine
container_name: qrrapido-nginx
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./nginx/ssl:/etc/nginx/ssl:ro
- ./logs/nginx:/var/log/nginx
depends_on:
- qrrapido
networks:
- qrrapido-network
restart: unless-stopped
volumes:
mongo_data:
driver: local
redis_data:
driver: local
networks:
qrrapido-network:
driver: bridge