back to Portfolio index

DDNS Manager

Overview

DDNS Manager is a self-hosted web application that provides (or at least it aims to) an intuitive interface for managing DNS records through Cloudflare’s API.

It’s designed to replace services like FreeDNS to control your dynamic DNS setup.

Motivation

For years, I relied on FreeDNS (afraid.org) for my dynamic DNS needs. While it served me well, I grew frustrated with several limitations:

Since I was already using Cloudflare’s free tier for my domains, I realized I could build a better solution that leverages their excellent API while providing the exact interface I wanted.

This project also gave me the perfect opportunity to experiment with Alpine AJAX, which I’d been wanting to try for a while. The combination of Alpine.js and its AJAX plugin provides a clean way to build interactive interfaces without complex JavaScript frameworks.

Solution

DDNS Manager is built with Go using the Echo framework and Templ for server-side templating. The application provides:

Technical Implementation:

How I Use It

I deploy DDNS Manager on my home server using Dokploy.

The setup is straightforward:

  1. Configure Cloudflare API token with Zone.DNS:Edit permissions
  2. Add your zone ID and domain settings
  3. Set update schedule (I use every 6 hours)
  4. Manage records through the clean web interface

The application automatically detects when my ISP changes my IP address and updates all relevant A records. For new subdomains, I can quickly add them through the web interface without dealing with Cloudflare’s dashboard.

Why This Works Better

Compared to FreeDNS and similar services:

Screenshot of DDNS
Screenshot of DDNS