Prerequisites: Go 1.22+, Node 18+, npm
cat > dev.hcl <<'HCL'
listen = "0.0.0.0:8443"
info_listen = "0.0.0.0:8080"
public_url = "http://localhost:8080"
admin_email = "you@example.com"
ca_dir = "/tmp/dev-ca"
oauth_dir = "/tmp/dev-oauth"
insecure_no_dashboard_secret = true
gateway {
control = "wireguard"
wg_endpoint = "127.0.0.1:51820"
wg_subnet_cidr = "10.55.0.0/24"
}
defaults { unknown_host = "passthrough" }
profile "default" { endpoints = [] }
HCL
mkdir -p /tmp/dev-ca /tmp/dev-oauthgo run . init-ca /tmp/dev-cago run . gateway -config ./dev.hclcd www && npm install && npm run devVite proxies all /api/* calls to the Go gateway at :8080. Edit files in www/src/ — browser hot-reloads instantly.