Files
headquarter/openspec/changes/archive/2026-05-22-cloudflare-tunnel-instances-superseded/tasks.md
T
Fusion 2a9e57ad0d chore: archive superseded cloudflare-tunnel-instances OpenSpec change
This change proposed using Cloudflare API for persistent tunnels.
Superseded by temporary tunnel approach using 'cloudflared tunnel --url'
which requires no API tokens, account IDs, or DNS configuration.
2026-05-22 21:01:44 +02:00

1.9 KiB

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