The DHCP server that writes DNS records for you.
Find a file
dvaughn ce29841ceb Use dotenvy over dotenv and only enable in debug builds
The og dotenv is unmaintained. That doesn't matter literally at all,
it's a simple program. If it works. It works. It's probably not going to
not work for like 10+ years. Anyways. I switched it and got rid of it
from release builds
2026-01-02 00:27:43 -05:00
.sqlx Initial commit 2025-12-16 02:22:18 -05:00
core Added static DNS records and DHCP hosts 2025-12-16 22:31:47 -05:00
dhcp Added static DNS records and DHCP hosts 2025-12-16 22:31:47 -05:00
dist Initial commit 2025-12-16 02:22:18 -05:00
dns Added static DNS records and DHCP hosts 2025-12-16 22:31:47 -05:00
migrations Initial commit 2025-12-16 02:22:18 -05:00
server Use dotenvy over dotenv and only enable in debug builds 2026-01-02 00:27:43 -05:00
.dockerignore Initial commit 2025-12-16 02:22:18 -05:00
.gitignore Initial commit 2025-12-16 02:22:18 -05:00
Cargo.lock Use dotenvy over dotenv and only enable in debug builds 2026-01-02 00:27:43 -05:00
Cargo.toml Use dotenvy over dotenv and only enable in debug builds 2026-01-02 00:27:43 -05:00
docker-compose.yml Initial commit 2025-12-16 02:22:18 -05:00
Dockerfile Initial commit 2025-12-16 02:22:18 -05:00
example.config.corn Initial commit 2025-12-16 02:22:18 -05:00
example.config.toml Initial commit 2025-12-16 02:22:18 -05:00
README.md Initial commit 2025-12-16 02:22:18 -05:00

ScribeDHCP

The DHCP server that writes the DNS records for you.

ScribeDHCP is written to be a simple, lightweight DHCP and Authoritative DNS server for (home)labs that saves you the trouble of managing your own local DNS records.

Warning

This repo is NOT finished and is absolutely a work in progress.

The code isn't exactly the most organized, although fairly functional. Most of the comments are outdated and the actual documentation itself is near non-existent. Some core features like static DNS records are missing. It's still functional though, and we sure as hell love testing in prod.

While there are many things that I would like to work on, I am doing this as a proof of concept for the lab infrastructure I'm working on right now. A full release will also be published on GitHub most likely on my professional account on the actual internet Unfortunately the history of these commits will likely follow, but oh well, it's cool regardless.

Configuration

The two main configuration languages are CORN and TOML. Example configurations can be found as the "example.config.ext" files in the root of the repo.

Note that these are not even close to comprehensive or well documented yet.

Why?

I was very confused and upset with the fact that Proxmox's SDN didn't have IPAM, DHCP and automatic DNS updates through the PowerDNS plugin because I was using the VLAN zone type instead of a "Simple" zone. I thought it was such a cool feature that I just HAD to have it. Despite code changes being proposed a while back to add the features (no citation because it was a random mailing list link), they didn't seem to be accepted, and who knows if they worked in the first place. I was super excited to have this feature work, and was bummed I had already set up a PowerDNS Authoritative Nameserver and Recursor just for it to not work. So of course the obvious course of action was to try to write one myself that would do it.

TODO

Before a full "1.0.0" release this would need a lot of things, and I'd do a whole road map if I wasn't just yapping to make the README look fool.

  • IPv6 support
  • Packages for Alpine, Debian/Ubuntu, and RPM
  • CI/CD pipeline for binaries
  • More automation-friendly config
  • Better Docker support + image on some Registry
  • Make the IPC socket and CLI actually functional
  • Many many other things that I simply can't recall at the moment.