commit 9545c9231c1db88bd69c43200bdd6b3649be3b8f Author: Clint Masden Date: Fri Feb 27 19:51:29 2026 -0600 Initial commit: DuckDNS DDNS updater config diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f733c4b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +config/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..c195c47 --- /dev/null +++ b/README.md @@ -0,0 +1,51 @@ +# DuckDNS + +DDNS updater running on box-stableapps (192.168.69.4). Updates two DuckDNS subdomains to point to the current public IP. + +## Subdomains + +| Subdomain | Full Domain | +|-----------|-------------| +| clintmasden | clintmasden.duckdns.org | +| dotrepo | dotrepo.duckdns.org | + +## Credentials + +| What | Value | +|------|-------| +| Token | `4a5a3762-47eb-4836-89d8-60014bab4922` | +| DuckDNS account | clintmasden@gmail.com | + +## Server Details + +| | | +|---|---| +| Host | 192.168.69.4 (box-stableapps) | +| Container | duckdns | +| Image | lscr.io/linuxserver/duckdns:latest | +| Ports | None (outbound HTTP only) | +| Config | `/home/clint/containers/duck.dns/config/` | +| SSH | `ssh clint@192.168.69.4` (password: `this-bo%-180391`) | + +## How It Works + +The container runs a cron job that periodically calls the DuckDNS API to update the A records for both subdomains with the host's current public IP. No inbound ports needed. + +## Deployment + +```bash +ssh clint@192.168.69.4 +cd /home/clint/containers/duck.dns +sudo docker compose up -d +``` + +## Verify + +```bash +# Check container logs +docker logs duckdns + +# Check DNS resolution +nslookup clintmasden.duckdns.org +nslookup dotrepo.duckdns.org +``` diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..c8f06ae --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,12 @@ +services: + duckdns: + image: lscr.io/linuxserver/duckdns:latest + container_name: duckdns + environment: + - SUBDOMAINS=clintmasden,dotrepo + - TOKEN=4a5a3762-47eb-4836-89d8-60014bab4922 + - UPDATE_IP=ipv4 + - TZ=America/Chicago + volumes: + - ./config:/config + restart: unless-stopped