auto: docs sync 2026-08-24T06:00:04+00:00
Files changed: engine/lint-report.md vault/.obsidian/workspace.json vault/docs/services/services.md vault/docs/software/caddy.md vault/docs/software/dns.md vault/projects/meshtastic-headscale-runbook.md vault/runbooks/expose-service-contabo.md vault/runbooks/expose-service-edge2.md vault/runbooks/expose-service-home.md
This commit is contained in:
parent
bb819a9124
commit
1441234ef4
9 changed files with 82 additions and 41 deletions
|
|
@ -10,13 +10,32 @@ related:
|
|||
- [[expose-service-contabo]]
|
||||
- [[usenet]]
|
||||
- [[expose-service-edge2]]
|
||||
updated: 2026-07-13
|
||||
updated: 2026-08-24
|
||||
---
|
||||
# GoDaddy DNS Management
|
||||
|
||||
## Script Location
|
||||
|
||||
`~/bin/godaddy-dns.py`
|
||||
`~/bin/godaddy-dns.py` on **cortex** (100.64.0.14). Restored 2026-08-24 — the
|
||||
original copy was lost in a host rebuild and these docs pointed at a script
|
||||
that no longer existed anywhere on the fleet for some time; that cost real
|
||||
time mid-deploy. Python 3 standard library only, no pip installs.
|
||||
|
||||
## THE RECORD-SET TRAP
|
||||
|
||||
GoDaddy's API has two kinds of write endpoints for A records:
|
||||
|
||||
- `PUT /v1/domains/<domain>/records/A/<name>` — replaces only `<name>`. Safe.
|
||||
- `PUT /v1/domains/<domain>/records/A` and `PUT /v1/domains/<domain>/records`
|
||||
— **replace every record of that type on the whole domain.**
|
||||
|
||||
Both `k7zvx.com` and `echo6.co` front live production services (mail, auth,
|
||||
forge, vpn, vault, matrix, element, and more). Calling one of the record-SET
|
||||
endpoints to "add" a record would wipe every other A record on the zone.
|
||||
`godaddy-dns.py` only ever uses the single-record endpoint to write, and does
|
||||
not implement the record-set endpoints at all. `add-a` always reads the full
|
||||
A-record list before and after and prints a diff, so you can see nothing
|
||||
else changed.
|
||||
|
||||
## API Credentials
|
||||
|
||||
|
|
@ -36,29 +55,34 @@ Stored in `/home/zvx/projects/.ref/credentials` as:
|
|||
|
||||
arclightvanguard.com, echo6.co, echo6.org, happylittlellc.com, idahomesh.com, k7zvx.com, lpmesh.com, maliceinwonderland.org, matthewwayne.com, smugglersden.co, underdogs.cc
|
||||
|
||||
## Subcommands
|
||||
|
||||
`godaddy-dns.py` currently supports A records only:
|
||||
|
||||
- `list <domain>` — list all A records for a domain
|
||||
- `get-a <domain> <name>` — show the A record(s) for one name
|
||||
- `add-a <domain> <name> <ip> [--ttl SECONDS] [--dry-run]` — add/update a
|
||||
single A record via the safe single-record endpoint; prints a before/after
|
||||
diff of the whole domain's A records
|
||||
|
||||
There is no CNAME/MX/delete/multi-domain support — add-a is add-or-update
|
||||
(PUT to the single-record endpoint), and there is no destructive delete or
|
||||
record-set command by design (see the trap above).
|
||||
|
||||
## Usage Examples
|
||||
|
||||
```bash
|
||||
# List all domains
|
||||
godaddy-dns.py list-domains
|
||||
|
||||
# List records for a domain
|
||||
# List all A records for a domain
|
||||
godaddy-dns.py list echo6.co
|
||||
|
||||
# Add A record
|
||||
# Look up one record
|
||||
godaddy-dns.py get-a echo6.co www
|
||||
|
||||
# Add/update an A record
|
||||
godaddy-dns.py add-a echo6.co www 199.6.36.163
|
||||
|
||||
# Add CNAME record
|
||||
godaddy-dns.py add-cname echo6.co blog www.echo6.co
|
||||
|
||||
# Add MX record with priority
|
||||
godaddy-dns.py add-mx echo6.co mail.echo6.co --priority=10
|
||||
|
||||
# Delete record
|
||||
godaddy-dns.py delete echo6.co A www
|
||||
|
||||
# Configure MX for all domains
|
||||
godaddy-dns.py setup-mail
|
||||
# Preview a change without writing anything
|
||||
godaddy-dns.py add-a echo6.co www 199.6.36.163 --dry-run
|
||||
```
|
||||
|
||||
## Common Patterns
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue