Merry Christmas! In my part of the world it’s a time of year that brings people together to reinvigorate the spirit of friendship and family, hopefully regardless of religious proclivities or beliefs. It’s also traditional where I’m from to celebrate it with the giving and receiving of gifts.

My gift to you this year is DDRM, a DNS record monitoring application written in golang. You provide it with DNS records that you’d like it to observe, along with expected values, and then it periodically checks them and emails you if anything is different to the expected state.

DDRM is designed to be easy to configure and easy to operate, using a simple JSON schema for both the core application config and the records you want it to monitor, and easy tuning of runtime state using command line flags.

It has a built-in terminal UI to help make it easy to operate, and it optionally supports using a Redis database as a runtime cache, allowing it to retain state across restarts.

It’s designed to be run on a Unix-like of some sort but it could be made to work on Windows with a little effort. There’s also a mini roadmap of sorts in the main README.md in the source tree, for things I’d like it to be able to do in the future.

It’s open source and available on my Sourcehut, with a mirror on GitHub. The GitHub release has binary packages if that’s easier for you than building it from source.