Skip to main content
Open router control plane

routerd

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.

Latest stable: v20260528.2308

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.

Managed Protocol Daemons

DHCPv4, DHCPv6-PD, PPPoE, DNS, health checks, event relay, and firewall logging expose local HTTP+JSON status instead of hiding state in hooks.

Operational By Default

routerctl, SQLite-backed events, log sinks, OpenTelemetry hooks, conntrack inspection, and a read-only Web Console keep runtime behavior visible.

What It Can Build

DHCPv6-PD and DS-Lite with AFTR conditional DNS resolution
DHCPv4 scopes, reservations, DHCPv6, RA, RDNSS, DNSSL, and MTU options
Local DNS zones, DHCP-derived records, private upstreams, cache, and DNSSEC flags
Egress route selection with health checks, NAT44 exclusions, and conntrack preservation
Declarative packages, sysctl profiles, network adoption, systemd units, and log forwarding
Read-only Web Console for status, events, connections, DNS queries, traffic, firewall logs, and config

Install, Validate, Apply

Start from the release archive. The installer brings in runtime packages, installs binaries and service templates, then you validate the YAML before changing the host.

curl -LO https://github.com/imksoo/routerd/releases/latest/download/routerd-linux-amd64.tar.gz
curl -LO https://github.com/imksoo/routerd/releases/latest/download/routerd-linux-amd64.tar.gz.sha256
sha256sum -c routerd-linux-amd64.tar.gz.sha256
tar -xzf routerd-linux-amd64.tar.gz
sudo ./install.sh
sudo install -m 0600 /usr/local/etc/routerd/router.yaml.sample /usr/local/etc/routerd/router.yaml
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.yaml

routerd is pre-release v1alpha1 software. The project favors clear, safe router semantics over compatibility with early experimental names.