원클릭으로
flaregate
Manage Cloudflare Tunnel + DNS for NAT VPS via CLI or web dashboard — provision, list, remove hostnames.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Manage Cloudflare Tunnel + DNS for NAT VPS via CLI or web dashboard — provision, list, remove hostnames.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | flaregate |
| description | Manage Cloudflare Tunnel + DNS for NAT VPS via CLI or web dashboard — provision, list, remove hostnames. |
| version | 2.0.0 |
| category | devops |
| metadata | {"hermes":{"tags":["cloudflare","tunnel","dns","vps","nat","provisioning"]}} |
Single-binary Go app for managing Cloudflare Tunnel hostnames and ingress rules on NAT VPS. Web dashboard + CLI mode. AI agent (Hermes/Claude) integration is a convenience layer — the core product works standalone via CLI or browser.
# Build (Go 1.24+)
cd /workspaces/FlareGate
go build -ldflags="-w -s" -o flaregate .
# Run dashboard (default, port 8020)
PORT=8020 ./flaregate
# CLI mode — any argument triggers CLI
./flaregate status
./flaregate hostname list
flaregate status # Show config, tunnel, hostnames
flaregate hostname list # List all hostnames
flaregate provision <hostname> <target> # Create DNS + ingress for hostname
flaregate hostname remove <hostname> # Remove hostname + DNS cleanup
flaregate token # Print cloudflared run command
flaregate help # Full usage
flaregate provision app.example.com localhost:3000
flaregate provision api.hijitoko.com 127.0.0.1:8080
flaregate hostname remove old.hijitoko.com
CLI reads Cloudflare token and config directly from SQLite — no login required.
http://localhost:8020
First run: register user → setup wizard → enter Cloudflare API token → select tunnel.
Features:
main.go — web server (Gin) + CLI dispatcher + PASETO auth + API endpointscli.go — CLI command handlersinternal/cloudflare/ — Cloudflare V4 API client with zone resolution, DNS, ingressinternal/config/ — SQLite config store with AES-GCM encryption for tokensinternal/tunnel/ — cloudflared process lifecyclescripts/flaregate-provision.py — standalone Python provisionerPASETO v4 local (symmetric):
paseto_token) + Bearer header supportAPIToken & TunnelToken encrypted at rest (AES-GCM, key from data/secret.key)json:"-")Zone:DNS:Edit — for the target zone
Account:Cloudflare Tunnel:Edit — for tunnel management
/workspaces/FlareGate/
├── flaregate # Binary (build output)
├── main.go # Server + auth + helpers
├── cli.go # CLI commands
├── go.mod / go.sum
├── internal/
│ ├── cloudflare/ # CF API client
│ ├── config/ # DB + encryption
│ └── tunnel/ # cloudflared runner
├── scripts/
│ └── flaregate-provision.py
├── templates/ # HTML templates
├── static/ # Static assets
├── skills/
│ └── SKILL.md # Agent skill definition (Hermes/Claude)
└── data/ # Runtime data (auto-created)
├── tunnel.db # SQLite config
├── secret.key # SECRET_KEY
└── cloudflared.log
When user invokes FlareGate via AI agent (Hermes, Claude Code, etc.), the agent should:
Then execute:
cd /workspaces/FlareGate && ./flaregate provision <hostname> <target>
For cloudflared installation, use the web dashboard's built-in install modal (click Health Status card) or follow the manual CLI steps below.
cd /workspaces/FlareGate && ./flaregate token
Debian/Ubuntu (x86_64):
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o /tmp/cloudflared.deb
sudo dpkg -i /tmp/cloudflared.deb
rm /tmp/cloudflared.deb
CentOS/RHEL/Fedora (x86_64):
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-x86_64.rpm -o /tmp/cloudflared.rpm
sudo rpm -ivh /tmp/cloudflared.rpm
rm /tmp/cloudflared.rpm
Standalone binary (any Linux):
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o /tmp/cloudflared
sudo install -m 755 /tmp/cloudflared /usr/local/bin/cloudflared
rm /tmp/cloudflared
sudo cloudflared service install <TOKEN>
sudo systemctl status cloudflared
sudo systemctl enable cloudflared
sudo journalctl -u cloudflared -f # logs
sudo systemctl restart cloudflared # restart
which cloudflared # check binary