/log works. The command executor contains handler panics so a bad
command cannot terminate the router service.www) and HTTPS (www-ssl) are gated independently, using the actual
TLS connection rather than a client-supplied forwarded header.debtik-cli authenticates in interactive and single-command
modes, validates login success, preserves buffered terminal data and restores
terminal state on signals. Single-command mode requires credentials.Read-only users can inspect public configuration and runtime state:
/interface aerotun print
/interface aerotun print detail=yes
Only full administrators can generate a shared PSK or change configuration:
/interface aerotun genkey
/interface aerotun add name=aerotun1 mode=server local-address=10.99.1.1/30 peer-address=10.99.1.2/32 allowed-ips=10.99.1.2/32 psk=<shared-key> disabled=yes comment="office uplink"
/interface aerotun set aerotun1 peer-public-key=<peer-key>
/interface aerotun enable aerotun1
/interface aerotun disable aerotun1
/interface aerotun start aerotun1
/interface aerotun stop aerotun1
/interface aerotun remove aerotun1
add defaults to v3 with compression off and disabled until configured. It
prints the generated public key. set preserves unspecified fields and stored
identity. The identifier can be either name or ID. Completion includes actions,
parameters and configured tunnel names. Allowed prefixes authorize peer source
addresses; they do not install routed LAN prefixes.
go test ./...
go vet ./...
go test -race ./internal/cli ./internal/api ./internal/bwtest ./cmd/debtik-cli
node --test scripts/ui-regression.test.cjs
The Go tests include a real loopback continuous session exceeding ten seconds, bidirectional traffic, Stop, broadcast observers, retained-window summaries, HTTP/HTTPS independence, quoted arguments, AeroTUN privilege checks and secret redaction, standalone authentication and actual SSH exec exit statuses.
With Playwright available as a development tool:
DEBTIK_TEST_URL=http://127.0.0.1:8080 node scripts/ui-smoke.cjs
Optional environment variables: DEBTIK_TEST_USER, DEBTIK_TEST_PASSWORD,
PLAYWRIGHT_MODULE, UI_TEST_ARTIFACTS. The smoke test logs into the specified
appliance, visits 26 views, and uses intercepted responses for rejected Stop,
failed telemetry and draft creation. It does not save real tunnel/server
configuration. It logs out its own session afterward. Development browser tools
are not a runtime dependency of the appliance.
Both Linux amd64/veth and Linux arm64/TUN appliances received the updated server
and CLI. AeroTUN configuration hashes and peer identities were unchanged.
Backups on both hosts: /root/.local/share/debtik-backups/ui-cli-20261030T140028Z/.
Builds, test logs and browser artifacts:
/root/.local/share/debtik-builds/ui-cli-fixes/.
Live checks confirmed overlay ping, CLI inspection, SSH exit status, continuous UDP in both directions and two simultaneous SSE observers receiving the same 23 samples. The capped 200 kbit/s test measured about 194/196 kbit/s with no reported loss; this was a functionality check, not a capacity benchmark.
The 35 browser checks passed against each deployed host (26 views plus nine
behavior checks), with zero JavaScript runtime errors. Rollback timers were
cancelled after verification; both backups contain a committed marker.