One Router Intent
Interfaces, DHCP, RA, DNS zones, DoH/DoT/DoQ forwarding, DS-Lite, NAT44, route policy, sysctl, packages, and systemd units live in one resource model.
Make a host router readable again.
routerd describes WAN acquisition, LAN services, DNS, NAT, route policy, system bootstrap, and observability as typed resources. It is built for small networks where the router must be explicit, repeatable, and inspectable.
Interfaces, DHCP, RA, DNS zones, DoH/DoT/DoQ forwarding, DS-Lite, NAT44, route policy, sysctl, packages, and systemd units live in one resource model.
DHCPv4, DHCPv6-PD, PPPoE, DNS, health checks, event relay, and firewall logging expose local HTTP+JSON status instead of hiding state in hooks.
routerctl, SQLite-backed events, log sinks, OpenTelemetry hooks, conntrack inspection, and a read-only Web Console keep runtime behavior visible.
Start with a normal YAML file. Validate it, inspect the plan, run a dry application, then let the daemon keep the host converged.
routerd validate --config /usr/local/etc/routerd/router.yaml
routerd plan --config /usr/local/etc/routerd/router.yaml
routerd apply --config /usr/local/etc/routerd/router.yaml --once --dry-run
routerd serve --config /usr/local/etc/routerd/router.yamlrouterd is pre-release v1alpha1 software. The project favors clear, safe router semantics over compatibility with early experimental names.