78aaddb2b5
- Add frontend-foundation change (FN-005) with 46 tasks - Add deployment-config change (FN-006) with 27 tasks - Add runfusion-poc/opencode-poc change (FN-008) with 25 tasks - Add config-secrets change (FN-009) with 31 tasks - Add codeserver-spawn change (FN-010) with 38 tasks - Include project specsheet and configuration - Archive completed deployment-config change
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/