Open source DDI - SpatiumDDI
Posted by mzac23@reddit | sysadmin | View on Reddit | 5 comments
I manage a decent-sized network in my homelab and the DNS/DHCP situation has always bugged me. There had to be a better way...
So I started building SpatiumDDI. It's a self-hosted DDI platform — BIND9 and ISC Kea run as containers that the control plane manages directly. Record changes go over RFC 2136, no restarts. DHCP lease comes in, DNS gets updated automatically. If the control plane dies, the agents keep serving from a local config cache.
Also added Windows Server DNS and DHCP that are managed through WinRM.
Stack is Python/FastAPI backend, React frontend, PostgreSQL, Redis, Celery. Docker Compose works today, Helm chart is published to ghcr.io. Auth supports LDAP, OIDC, SAML, RADIUS and TACACS+. Permissions are scoped so you can delegate a subnet or zone to someone else without giving them access to everything.
It's alpha and I'm one person, so rough edges exist. But it's functional enough that I wanted to put it out there and see if anyone else has the same itch.
https://github.com/spatiumddi/spatiumddi
Happy to answer questions about the architecture or the dumb decisions I probably made along the way.
ZAFJB@reddit
Cooleb09@reddit
RemindMe! 6 months.
If this project lives and doesn't disappear into vapourware, it could be a great option for those of us too poor for Infoblox.
fsweetser@reddit
This looks pretty promising! Are you prepared to take feature requests? I've been doing DDI administration for a few years, mostly Efficient IP, and I'd be happy to at least drop in what I've found to be some of the more killer features.
mzac23@reddit (OP)
Yes for sure! I also work with a commercial solution at work which inspired me for a lot of the features in this new DDI. I'm also hoping to expand and add new features that current DDI solutions don't have. If you want to try it it is very simple to use it with Docker compose, just try it on a lab vm so you don't break anything ;)
fsweetser@reddit
Awesome! I don't have the setup to test this right now, so this list is based off of just reading the docs.
Happy to go into more details if you'd like, but if you're familiar with EIP you'll probably know most of these already. They're just the ones that I've found to be the most useful.