You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The cockpit-exposure feature (#142/#143/#144) needs a generic, consumer-facing runbook so any reCode user can go from "loop armed locally" to "cockpit on my own domain behind Cloudflare Access" without reverse-engineering the scripts. reDeploy's docs/ALWAYS-ON-TUNNEL.md is a strong project-specific template to generalize — same shape, minus the studio/Vite specifics (httpHostHeader etc.).
Proposal
Add a runbook to docs/ covering, provider-agnostically where possible but Cloudflare-concretely:
Prereqs: a Cloudflare-managed zone, cloudflared install, one-time tunnel login.
The per-project model: one named tunnel / config / unit per project; why the default ~/.cloudflared/config.yaml is a hazard and every command uses explicit --config + tunnel UUID.
gates.json reference for the cockpit and expose blocks (port uniqueness and naming conventions for multi-project machines).
The Access-before-DNS ordering rule and why it exists (unauthenticated origin).
Walkthrough of the cockpit-expose skill, its idempotency, and teardown.
Operations: loop-scoped vs always-on tunnel trade-off (Access-authenticated visitors see a Cloudflare 1033/error while the loop is down — expected); WSL2 survival (loginctl enable-linger + unattended-autostart notes); verifying SSE /events through the tunnel.
Blocked by #143
Context
The cockpit-exposure feature (#142/#143/#144) needs a generic, consumer-facing runbook so any reCode user can go from "loop armed locally" to "cockpit on my own domain behind Cloudflare Access" without reverse-engineering the scripts. reDeploy's
docs/ALWAYS-ON-TUNNEL.mdis a strong project-specific template to generalize — same shape, minus the studio/Vite specifics (httpHostHeaderetc.).Proposal
Add a runbook to
docs/covering, provider-agnostically where possible but Cloudflare-concretely:cloudflaredinstall, one-timetunnel login.~/.cloudflared/config.yamlis a hazard and every command uses explicit--config+ tunnel UUID.gates.jsonreference for thecockpitandexposeblocks (port uniqueness and naming conventions for multi-project machines).cockpit-exposeskill, its idempotency, and teardown.loginctl enable-linger+ unattended-autostart notes); verifying SSE/eventsthrough the tunnel.Acceptance criteria
🤖 Generated with Claude Code