Self-hosted, single-tenant zero-trust tunnel (controller + agents + relay fallback).
make build
./cmd/zetaflow-controller/zetaflow-controller configs/controller.yaml
./cmd/zetaflow-relay/zetaflow-relay
./cmd/zetaflow-agent/zetaflow-agent configs/agent-target.yaml
./cmd/zetaflow-agent/zetaflow-agent configs/agent-client.yamlController endpoints:
POST /v1/registerPOST /v1/agents/heartbeatPOST /v1/sessions/requestPOST /v1/sessions/revokeGET /v1/sessions/status?session_id=...GET /metrics
- Machine A (laptop): run client agent with outbound HTTPS to controller + outbound TCP to relay.
- Machine B (office host): run target agent with outbound HTTPS to controller + outbound TCP to relay.
- Controller/relay can run on VPS with public IP.
configs/controller.yaml must include:
admin_tokenrelay_addrrelay_ticket_secret
Agent config supports dataplane flags:
dataplane.enable_udpdataplane.enable_relaydataplane.udp_listen_addrdataplane.relay_addr
- Open controller TLS port and relay TCP port in firewall.
- Ensure agents can reach controller URL and relay address.
- Check
/metricson controller and relay for counters. - If direct path fails, verify relay fallback enabled.
make lint
make build
make test