Deployment
Docker
Section titled “Docker”docker build -f deploy/Dockerfile -t homedns:dev .docker run --rm -p 5353:53/udp -p 8080:8080 \ -v "$PWD/config.example.yaml:/app/config.yaml" \ homedns:devThe container is non-root by default. For low ports, use CAP_NET_BIND_SERVICE or host-level port mapping.
systemd
Section titled “systemd”sudo install -d /etc/homedns /var/lib/homednssudo install -m 0644 deploy/systemd/homedns.service /etc/systemd/system/homedns.servicesudo install -m 0644 config.example.yaml /etc/homedns/config.yamlsudo install -m 0755 ./bin/dnsd /usr/local/bin/dnsdsudo install -m 0755 ./bin/dnsctl /usr/local/bin/dnsctlsudo useradd --system --no-create-home --shell /usr/sbin/nologin homedns || truesudo systemctl daemon-reloadsudo systemctl enable --now homednsKubernetes
Section titled “Kubernetes”kubectl apply -f deploy/k8s/homedns.yamlkubectl -n homedns get pods,svcTune Service type, config, and NetworkPolicy for your environment.
Docs site deployment (Cloudflare Pages)
Section titled “Docs site deployment (Cloudflare Pages)”For this docs repository:
- Build command:
pnpm build(orbun run build) - Output directory:
dist - Production branch:
main
After deployment, create a DNS CNAME in Cloudflare:
- Name:
docs - Target: your Cloudflare Pages hostname
- Zone:
homedns.app
This maps docs to docs.homedns.app.