* feat(tunnel): add toggle tool and bash script * feat(tunnel): add cloudflared to Dockerfile * docs(tunnel): add ADR and handoff * docs(handoff): set PR number * docs: update project map + handoff + ADR --------- Co-authored-by: opencode-agent <agent@slaid098.dev>
1.7 KiB
1.7 KiB
| pr_number | title |
|---|---|
| 34 | Tunnel tool with toggle mode |
PR: Tunnel tool with toggle mode
Что сделано
.opencode/tools/tunnel.ts— TS tool wrapper (toggle без args, вызываетbash .opencode/scripts/tunnel.sh).opencode/scripts/tunnel.sh— bash toggle: PID файл → stop, нет → start named tunnel (cloudflared tunnel run --token $CLOUDFLARE_TUNNEL_TOKEN)Dockerfile— cloudflared install (curl -L ... -o /usr/local/bin/cloudflared).env.example— добавленTUNNEL_DOMAIN=(опциональный, для display)- ADR-013 + этот handoff
Почему
Tunnel skill в старом приватном репо содержал приватные данные (IPs, домены, UUID). Для публичного репо нужен tool без хардкода. Toggle mode (без аргументов) максимально прост для агента — первый вызов = start, второй = stop.
Pending
- Нет
Watch out
CLOUDFLARE_TUNNEL_TOKENдолжен быть в.env(compose env_file) — без него скрипт падает exit 1- PID-файл
/tmp/tunnel.pidтеряется при рестарте контейнера —statusскажет not running, нужно перезапустить - DinD: origin host в Cloudflare dashboard должен быть
docker-dind:<PORT>(неlocalhost:<PORT>), иначе 502 Bad Gateway - Tools auto-discovered через @opencode-ai/plugin — НЕ нужно регистрировать в opencode.json
cloudflaredв Dockerfile устанавливается из latest release (не pinned version)