doona
Requirements
Demo
English

Requirements

Gateway

honk runs on Linux as root. It loads eBPF programs, creates the dae0 link and the daens namespace, and changes sysctls, so keep a second way into the machine, such as a console, during the first start.

  • Linux 6.12 or later. honk rejects an older kernel before it attaches anything.
  • The kernel options below. Desktop and server distributions usually enable them; OpenWrt, Armbian and VyOS need checking.
  • cgroup v2 for pname(...) rules. Without it honk starts, and process-name routing stays off.
  • bpffs mounted at /sys/fs/bpf.
  • CA certificates, such as the ca-certificates package. Without them honk stops with “subscription network startup failed”.
  • Geodata updates can raise memory use on small routers. honk streams them to disk; on OpenWrt with a mimalloc build, keep MIMALLOC_PURGE_DELAY=0 in the procd service to return freed memory promptly.
uname -r
zcat /proc/config.gz 2>/dev/null || cat /boot/config-$(uname -r)
CONFIG_BPF=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
CONFIG_DEBUG_INFO_BTF=y
CONFIG_CGROUP_BPF=y
CONFIG_NET_CLS_BPF=y|m
CONFIG_NET_SCH_INGRESS=y|m
CONFIG_NET_CLS_ACT=y
CONFIG_NET_NS=y
# Held-first-packet UDP (NFQUEUE, on by default) also needs:
CONFIG_NF_TABLES=y|m
CONFIG_NF_TABLES_INET=y|m
CONFIG_NFT_CT=y|m
CONFIG_NETFILTER_NETLINK_QUEUE=y|m
CONFIG_NFT_QUEUE=y|m

Mount bpffs if the system does not:

sudo install -d -m 0755 /sys/fs/bpf
mountpoint -q /sys/fs/bpf || sudo mount -t bpf bpf /sys/fs/bpf
mountpoint /sys/fs/bpf
# To mount it at boot, add this line to /etc/fstab:
# bpf /sys/fs/bpf bpf defaults 0 0

honk version

  • The honk-core assets for doona beta.19 come from Glassyiris/honk feat/native-api tag debug.2026.10.9.native-api.2, commit eac5e0c5fba5078a7ff4517a3e3851e7fa0f4f8e. They include the opt-in native-api build feature and embed doona 0.1.0-beta.19. HONK-SOURCE.txt records the tag and full honk commit and links both honk source and matching doona source. With ui: embedded, no standalone UI package is needed; an external ui directory remains an option.
  • Builds of daeuniverse/honk main have no native API. honk rejects every native_api setting as unknown experimental setting, and /api and /ui/ answer 404.
  • A build from feat/native-api without the native-api feature stops startup with native-api feature is required when native_api is enabled.
  • Early feat/native-api builds update geodata but have no configurable sources. The builds attached to doona beta.8 and beta.9 have both.

Run honk-core --version to check the installed binary. To check the running version, use the Engine card on System status or the bottom of the side navigation.

Browser and build

Component Requirement
Backend An engine implementing the native API contract pinned in SOURCE.md, with its API listener enabled
Browser Chrome or Edge 120, Firefox 121, Safari 17 or later. These are the CSS build targets; the JavaScript target is ES2022. Browser tests use Chromium; CI adds WebKit and a Firefox Nightly compatibility run.
Build Node ^22.13.0 || ^24.0.0 || >=26.0.0 and pnpm 11.15.1, only to build doona from source; GNU tar, gzip and sha256sum for the archives
doona

doona documentation

English
doona documentationFor a direct-only first run, follow Quick start. Quick startStart the standard edition of doona with a direct-only honk configuration, sign in, and verify traffic from the gateway itself. Standard edition and doona liteThe standard edition manages configuration and observes traffic. Requirements Install on Debian or UbuntuInstall doona from the doona-web .deb package and honk-core from the same release on Debian, Ubuntu or another APT-based system. Install on Fedora or RHELInstall doona from its .rpm package and honk-core from the same release on Fedora, RHEL or another DNF-based system. Install on Arch LinuxInstall doona from its .pkg.tar.zst package and honk-core from the same release on Arch Linux or another pacman-based system. Install on GentooInstall doona with Portage from the repository's ebuild in a local ebuild repository, and honk-core from the same release. Install on OpenWrtInstall doona from a release package or archive and honk-core from the same release on OpenWrt 25.12. Install on other systemsInstall doona and honk-core from release archives on an x86_64 or aarch64 Linux system that meets the kernel requirements below. Installation detailsInstall honk, write its configuration, then install doona and start honk. Minimal configurationThis page writes the smallest honk configuration that starts honk and serves doona, then checks it by starting honk by hand. Service managementThis page runs honk as a systemd or OpenWrt procd service: it creates the service once, then lists the commands that start, stop, restart and reload honk and read its log. Route your first connectionContinue from Quick start, with honk running and your administrator signed in. First sign-inThis page opens doona in a browser, creates the administrator account and checks that doona shows the running honk. Interface tourUse the navigation to open a page, the top bar to search or refresh, and the page tabs to change views. Watching trafficUse Activity and System status to read engine health, and Connections, Routing log and DNS to inspect traffic. Routing, nodes and rulesPolicies manages group selection and membership. Config and settingsConfiguration reads, validates and applies honk's configuration files. Common tasksThis page covers the standard edition; for doona lite, see doona lite. FeaturesFor each feature’s prerequisites and disabled-action explanations, see Feature requirements. doona litedoona lite edits honk configuration through a smaller interface for beginners. Connect doona liteConnect doona lite to the honk native API, or open the demo without a backend. Common tasks in doona liteUse doona lite to import resources and edit honk configuration. ConfigurationUse this reference for honk's DAE settings exposed by doona, their defaults, and their application paths. What doona can changedoona changes configuration sources, runtime state, persistent geodata settings, and browser preferences through different controls. Feature requirementsFind your standard-edition feature in the table, then use its section to check prerequisites and enable it. Troubleshooting DevelopmentRead CONTRIBUTING.md before opening a pull request.