8b4784f5ed
- Archive config-secrets (FN-009) - 31 tasks complete - Archive runfusion-poc (FN-008) - 25 tasks complete - Archive deployment-config (FN-006) - 27 tasks complete - All changes moved to openspec/changes/archive/
1.7 KiB
1.7 KiB
1. Traefik Label Generator
- 1.1 Create apps/api/app/services/traefik.py with TraefikLabelGenerator class
- 1.2 Implement subdomain generation from tool_id, project_slug, user_slug
- 1.3 Generate router labels (rule, service, tls)
- 1.4 Generate service labels (loadBalancer, port)
- 1.5 Add middleware labels for security headers
- 1.6 Write unit tests for label generation
2. Backend Integration
- 2.1 Integrate label generation into tool instance spawn endpoint
- 2.2 Store generated labels in tool_instance metadata
- 2.3 Remove/disable labels on tool instance stop
- 2.4 Update ToolInstance model to store labels JSON
3. Production Docker Compose
- 3.1 Create docker-compose.prod.yml with api, web, traefik, db services
- 3.2 Configure Traefik service with Let's Encrypt certificates
- 3.3 Set up platform and tools networks
- 3.4 Add health checks for all services
- 3.5 Configure logging (JSON format, rotation)
4. Portainer Deployment
- 4.1 Create deploy/portainer-stack.yml
- 4.2 Add Portainer-specific environment variable documentation
- 4.3 Create deploy/.env.example for production
- 4.4 Test stack deployment locally with docker compose -f docker-compose.prod.yml
5. Documentation
- 5.1 Update docs/deployment.md with production deployment steps
- 5.2 Add Traefik configuration guide
- 5.3 Document subdomain scheme and DNS requirements
- 5.4 Update README.md with deployment section
6. Testing & Verification
- 6.1 Test label generation for all built-in tools
- 6.2 Verify Traefik routes correctly in local stack
- 6.3 Run backend tests:
cd apps/api && pytest - 6.4 Run linters:
ruff check app/andmypy app/