From a879b8d1fe7275d2bd13357b600a3be7e7a3c751 Mon Sep 17 00:00:00 2001 From: Clint Masden Date: Fri, 27 Feb 2026 19:51:42 -0600 Subject: [PATCH] Initial commit: Namecheap DDNS updater config --- README.md | 54 ++++++++++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 18 ++++++++++++++++ 2 files changed, 72 insertions(+) create mode 100644 README.md create mode 100644 docker-compose.yml diff --git a/README.md b/README.md new file mode 100644 index 0000000..0807b57 --- /dev/null +++ b/README.md @@ -0,0 +1,54 @@ +# Namecheap DDNS + +Dynamic DNS updater for dotrepo.com running on box-stableapps (192.168.69.4). Two containers keep the root (`@`) and wildcard (`*`) A records pointing to the current public IP. + +## DNS Records Updated + +| Record | Domain | Container | +|--------|--------|-----------| +| @ (root) | dotrepo.com | ddns_dotrepo_at | +| * (wildcard) | *.dotrepo.com | ddns_dotrepo_wild | + +## Credentials + +| What | Value | +|------|-------| +| NC_DOMAIN | dotrepo.com | +| NC_PASS (DDNS password) | `f1e2a12848f24995918b84760fd02b41` | +| Namecheap account | clintmasden | + +The DDNS password is NOT the Namecheap account password. It's generated in Namecheap dashboard under Domain List > Advanced DNS > Dynamic DNS. + +## Server Details + +| | | +|---|---| +| Host | 192.168.69.4 (box-stableapps) | +| Containers | ddns_dotrepo_at, ddns_dotrepo_wild | +| Image | linuxshots/namecheap-ddns | +| Ports | None (outbound HTTP only) | +| Volumes | None (stateless) | +| SSH | `ssh clint@192.168.69.4` (password: `this-bo%-180391`) | + +## How It Works + +Each container polls the Namecheap DDNS API to update its respective A record. The wildcard record (`*`) ensures all subdomains (audioevents.dotrepo.com, learnxiny.dotrepo.com, etc.) resolve to the public IP. Traefik then routes each subdomain to the correct container. + +## Deployment + +```bash +ssh clint@192.168.69.4 +cd /home/clint/containers/namecheap.dns +sudo docker compose up -d +``` + +## Verify + +```bash +# Check containers are running +docker ps --filter name=ddns + +# Check DNS resolution +nslookup dotrepo.com +nslookup audioevents.dotrepo.com +``` diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..c5e2881 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,18 @@ +services: + ddns_dotrepo_at: + image: linuxshots/namecheap-ddns + container_name: ddns_dotrepo_at + environment: + - NC_DOMAIN=dotrepo.com + - NC_HOST=@ + - NC_PASS=f1e2a12848f24995918b84760fd02b41 + restart: unless-stopped + + ddns_dotrepo_wild: + image: linuxshots/namecheap-ddns + container_name: ddns_dotrepo_wild + environment: + - NC_DOMAIN=dotrepo.com + - NC_HOST=* + - NC_PASS=f1e2a12848f24995918b84760fd02b41 + restart: unless-stopped