Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
dezhban
command
Command dezhban is a cross-platform network kill switch: it watches the machine's public IP, resolves its country, and drives the OS firewall to cut traffic when the country matches a blocklist.
|
Command dezhban is a cross-platform network kill switch: it watches the machine's public IP, resolves its country, and drives the OS firewall to cut traffic when the country matches a blocklist. |
|
internal
|
|
|
armed
Package armed persists the one fact that lets the daemon arm at boot instead of live-probing for a tunnel: "a configured VPN has been observed up at least once on this host." That is exactly the arming rail ADR-0002 specified — "the daemon arms only when a tunnel is both configured and has been observed up at least once" — and the persistence its own Consequences section flagged as required and never built: "the 'observed once' bit must persist across daemon restarts to avoid re-entering standby on every reboot." See docs/adr/0002-standby-no-tunnel-posture.md and docs/adr/0008-arm-at-boot.md.
|
Package armed persists the one fact that lets the daemon arm at boot instead of live-probing for a tunnel: "a configured VPN has been observed up at least once on this host." That is exactly the arming rail ADR-0002 specified — "the daemon arms only when a tunnel is both configured and has been observed up at least once" — and the persistence its own Consequences section flagged as required and never built: "the 'observed once' bit must persist across daemon restarts to avoid re-entering standby on every reboot." See docs/adr/0002-standby-no-tunnel-posture.md and docs/adr/0008-arm-at-boot.md. |
|
command
Package command is the daemon's ROOT control channel: a root-owned command file that the `dezhban switch`/`vpn` CLIs write and the running daemon consumes on a tick.
|
Package command is the daemon's ROOT control channel: a root-owned command file that the `dezhban switch`/`vpn` CLIs write and the running daemon consumes on a tick. |
|
config
Package config defines dezhban's runtime configuration and loading.
|
Package config defines dezhban's runtime configuration and loading. |
|
control
Package control is the daemon's live control channel: a unix socket the daemon listens on and the CLI dials, so routine posture changes (block / unblock / switch window) work without re-elevating to root on every call.
|
Package control is the daemon's live control channel: a unix socket the daemon listens on and the CLI dials, so routine posture changes (block / unblock / switch window) work without re-elevating to root on every call. |
|
decision
Package decision maps monitor readings to an enforcement verdict.
|
Package decision maps monitor readings to an enforcement verdict. |
|
firewall
Package firewall drives the OS firewall to cut and restore network egress.
|
Package firewall drives the OS firewall to cut and restore network egress. |
|
help
Package help turns the repo's documentation into what the macOS app bundles and displays.
|
Package help turns the repo's documentation into what the macOS app bundles and displays. |
|
learned
Package learned persists VPN server endpoints that the daemon discovered at runtime (during a switch window, or via live socket discovery under normal guard), so a VPN that has been connected once stays reachable across restarts without the user hand-typing its server address.
|
Package learned persists VPN server endpoints that the daemon discovered at runtime (during a switch window, or via live socket discovery under normal guard), so a VPN that has been connected once stays reachable across restarts without the user hand-typing its server address. |
|
logging
Package logging builds dezhban's structured logger.
|
Package logging builds dezhban's structured logger. |
|
monitor
Package monitor resolves the machine's public IP and its country, on a polling loop, with multi-provider redundancy.
|
Package monitor resolves the machine's public IP and its country, on a polling loop, with multi-provider redundancy. |
|
netdetect
Package netdetect discovers VPN tunnel interfaces for the interface-aware guard, so operators need not hand-name them.
|
Package netdetect discovers VPN tunnel interfaces for the interface-aware guard, so operators need not hand-name them. |
|
privilege
Package privilege reports whether dezhban has the OS privileges needed to modify the firewall (root on unix, Administrator on Windows).
|
Package privilege reports whether dezhban has the OS privileges needed to modify the firewall (root on unix, Administrator on Windows). |
|
redial
Package redial bounds the automatic redial window: how long it may be, how often, and when it must be refused outright.
|
Package redial bounds the automatic redial window: how long it may be, how often, and when it must be refused outright. |
|
render
Package render turns a state.Snapshot into the sentences an operator reads: a short headline and a supporting detail, plus a stable machine key that classifies the two.
|
Package render turns a state.Snapshot into the sentences an operator reads: a short headline and a supporting detail, plus a stable machine key that classifies the two. |
|
runner
Package runner ties the three layers into the live daemon: it polls the Monitor, asks the Decider for a verdict, and drives the firewall Backend — always cleaning up on exit.
|
Package runner ties the three layers into the live daemon: it polls the Monitor, asks the Decider for a verdict, and drives the firewall Backend — always cleaning up on exit. |
|
setup
Package setup holds the first-run wizard's decisions: what it asks, in what order, which answers unlock which follow-ups, and how the answers become a config.
|
Package setup holds the first-run wizard's decisions: what it asks, in what order, which answers unlock which follow-ups, and how the answers become a config. |
|
state
Package state publishes the daemon's live posture to an on-disk JSON file so out-of-process observers (the macOS menubar app, `status --json`) can read exactly what the daemon decided without running their own poller.
|
Package state publishes the daemon's live posture to an on-disk JSON file so out-of-process observers (the macOS menubar app, `status --json`) can read exactly what the daemon decided without running their own poller. |
|
svc
Package svc runs dezhban as a managed background service on each OS, using one cross-platform API (github.com/kardianos/service) that maps to launchd on macOS, systemd/upstart/sysv on Linux, and the Windows Service manager.
|
Package svc runs dezhban as a managed background service on each OS, using one cross-platform API (github.com/kardianos/service) that maps to launchd on macOS, systemd/upstart/sysv on Linux, and the Windows Service manager. |
|
token
Package token is the daemon's shared secret with a trusted local client.
|
Package token is the daemon's shared secret with a trusted local client. |
|
update
Package update implements `dezhban upgrade`: checking GitHub for a newer release, downloading and verifying it, and — on macOS only — applying the signed .pkg and restarting into it.
|
Package update implements `dezhban upgrade`: checking GitHub for a newer release, downloading and verifying it, and — on macOS only — applying the signed .pkg and restarting into it. |
|
vocab
Package vocab reads the banned-word table out of docs/concepts/glossary.md and matches text against it.
|
Package vocab reads the banned-word table out of docs/concepts/glossary.md and matches text against it. |
|
vpnimport
Package vpnimport extracts VPN server endpoints from common client config formats so a profile can be created without hand-copying the server address.
|
Package vpnimport extracts VPN server endpoints from common client config formats so a profile can be created without hand-copying the server address. |
|
tools
|
|
|
helpgen
command
Command helpgen renders the documentation the macOS app bundles.
|
Command helpgen renders the documentation the macOS app bundles. |
|
relsign
command
Command relsign signs a file with the dezhban release ed25519 private key.
|
Command relsign signs a file with the dezhban release ed25519 private key. |
|
taskmenu
command
taskmenu is the interactive picker behind a bare `task` on a TTY: pick a flow, answer the prompts for the vars it takes, and it execs `task <name> KEY=VAL…`.
|
taskmenu is the interactive picker behind a bare `task` on a TTY: pick a flow, answer the prompts for the vars it takes, and it execs `task <name> KEY=VAL…`. |
Click to show internal directories.
Click to hide internal directories.
