45 lines
1.9 KiB
Markdown
45 lines
1.9 KiB
Markdown
## 1. Infrastructure Setup
|
|
|
|
- [ ] 1.1 Add cloudflared service to docker-compose.traefik.yml
|
|
- [ ] 1.2 Create cloudflared config directory and base config
|
|
- [ ] 1.3 Add Cloudflare env vars (API token, account ID, zone ID) to .env.example
|
|
- [ ] 1.4 Mount shared config volume between API and cloudflared containers
|
|
|
|
## 2. Backend - Cloudflare Tunnel Service
|
|
|
|
- [ ] 2.1 Create `src/services/cloudflare_tunnel.py` with tunnel CRUD operations
|
|
- [ ] 2.2 Implement `create_tunnel(instance_name, container_name, port)` function
|
|
- [ ] 2.3 Implement `delete_tunnel(tunnel_id)` function
|
|
- [ ] 2.4 Implement `update_cloudflared_config()` to rewrite config.yml
|
|
- [ ] 2.5 Add Cloudflare API token validation on startup
|
|
|
|
## 3. Backend - Instance Lifecycle Updates
|
|
|
|
- [ ] 3.1 Update ToolInstance model: add `tunnel_id` and `public_url` fields
|
|
- [ ] 3.2 Create Alembic migration for new fields
|
|
- [ ] 3.3 Update `start_instance` to create tunnel and store public_url
|
|
- [ ] 3.4 Update `stop_instance` to delete tunnel and DNS record
|
|
- [ ] 3.5 Update `delete_instance` to ensure tunnel cleanup
|
|
- [ ] 3.6 Update `get_user_sessions` to include `public_url`
|
|
|
|
## 4. Backend - Cleanup
|
|
|
|
- [ ] 4.1 Remove `instance_proxy.py` router
|
|
- [ ] 4.2 Remove proxy route registration from `main.py`
|
|
- [ ] 4.3 Remove `default_port` from ToolType (no longer needed)
|
|
- [ ] 4.4 Clean up any proxy-related code
|
|
|
|
## 5. Frontend Updates
|
|
|
|
- [ ] 5.1 Update Session interface to include `public_url`
|
|
- [ ] 5.2 Update InstanceList "Open" button to use `public_url`
|
|
- [ ] 5.3 Update SessionsPage "Open" button to use `public_url`
|
|
- [ ] 5.4 Remove proxy URL construction logic
|
|
|
|
## 6. Testing and Deployment
|
|
|
|
- [ ] 6.1 Test tunnel creation with code-server instance
|
|
- [ ] 6.2 Test tunnel deletion on instance stop
|
|
- [ ] 6.3 Verify HTTPS and WebSocket support
|
|
- [ ] 6.4 Run quality gates (ruff, mypy, typecheck, lint, build)
|
|
- [ ] 6.5 Deploy and test end-to-end |