# 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 ```