Modern self-hosted Dynamic DNS service with web UI and automatic Route53 and Cloudflare updates.
757
Self-hosted Dynamic DNS (DDNS) manager with web UI. Automatically updates DNS records on Route53 and Cloudflare when your public IP changes.
DriftDNS is a lightweight, self-hosted DDNS solution designed for homelab users, developers, and anyone running services behind a dynamic public IP address. It continuously monitors your public IP and automatically updates your DNS records on supported providers — no scripts, no cron jobs, no manual work.
Perfect for keeping services like Home Assistant, Nextcloud, Plex, VPN servers, and NAS devices reachable from the internet even when your ISP changes your IP.
| Provider | Status |
|---|---|
| AWS Route53 | ✅ Stable |
| Cloudflare | ✅ Stable |
| Azure DNS | 🔜 Planned |
| Google Cloud DNS | 🔜 Planned |
services:
driftdns:
image: catokx/driftdns:latest
container_name: driftdns
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- driftdns-data:/app/data
volumes:
driftdns-data:
docker compose up -d
docker run -d \
--name driftdns \
--restart unless-stopped \
-p 8080:8080 \
-v driftdns-data:/app/data \
catokx/driftdns:latest
Then open http://localhost:8080 and configure your DNS provider and endpoints from the dashboard.
You can also pin a specific version:
catokx/driftdns:0.2.4
All configuration is handled through the Settings page in the web dashboard (sync interval, log retention, etc.).
To run on a different host port, adjust the port mapping:
ports:
- "9090:8080" # DriftDNS available on port 9090
| Variable | Default | Description |
|---|---|---|
DatabasePath | /app/data/app.db | Custom path for the SQLite database |
ASPNETCORE_URLS | http://+:8080 | Internal listening port |
Docker Compose:
docker compose pull
docker compose up -d
Docker Run:
docker pull catokx/driftdns:latest
docker stop driftdns && docker rm driftdns
docker run -d --name driftdns --restart unless-stopped \
-p 8080:8080 -v driftdns-data:/app/data \
catokx/driftdns:latest
Your data is preserved across updates — the named volume
driftdns-datapersists automatically.
Built with ASP.NET Core 9, Blazor Server, Entity Framework Core, and SQLite. Runs as a single self-contained Docker image — no external database required.
Content type
Image
Digest
sha256:4026d544d…
Size
125.2 MB
Last updated
6 months ago
docker pull catokx/driftdns