Faro is an open-source, self-hosted DNS server built for visibility as much as blocking. See which devices are requesting domains, understand why requests were allowed or blocked, create per-device protection profiles, manage local DNS, use encrypted upstreams, and run redundant DNS servers from one interface. Faro runs on your own hardware, stores its history locally, and requires no cloud account.
I built Faro because I wanted better visibility into what was actually happening on my home network.
I tried Pi-hole, AdGuard Home, and Technitium in my homelab, and I kept feeling like each one was missing something I wanted.
I was already using CoreDNS at work, so at some point I thought: why not use that as the foundation for a DNS server and blocker that is powerful, but actually easy to use?
So that’s what I did.
I started with CoreDNS and built a UI around it, then kept adding the things I wanted for my own network: per-device activity, protection rules, local DNS, upstream health, easier troubleshooting, and seamless redundant DNS servers that stay in sync.
Eventually it stopped being “some tooling around my DNS server” and became Faro.
The name Faro is Spanish for lighthouse. I like giving my apps a little Spanish touch, and the name felt fitting for something meant to help you see what’s happening on your network.
The idea is pretty simple: DNS should be powerful without requiring you to stare at config files every time you want to understand why a device is doing something weird.
Faro is fully self-hosted and open source. Your DNS history stays on your own hardware. There’s no cloud account, no hosted service, and no tracking of any kind. That’s how I like things in my homelab to work.
You can also run a second Faro server as a read-only replica for DNS redundancy, with synchronization handled for you. I wanted redundancy to feel like part of the product, not another thing you have to manually piece together.
I’ve been running Faro on my own network while building it, so a lot of the features came directly from things I actually wanted to investigate or fix.
I’d especially love feedback from people running Pi-hole, AdGuard Home, Technitium, CoreDNS, UniFi, or other homelab DNS setups.
I’m curious what feels useful, what feels unnecessary, and what’s missing.