*Ma*nage *ma*naged *DNS* services with this tool.
Schlundtech and probably soon, also Hetzner Cloud DNS too.
|
|
1 tydzień temu | |
|---|---|---|
| .opencode | 1 tydzień temu | |
| cmd | 1 tydzień temu | |
| internal | 1 tydzień temu | |
| maister @ 65459dcf65 | 1 tydzień temu | |
| tools | 1 tydzień temu | |
| .gitignore | 1 tydzień temu | |
| .gitmodules | 1 tydzień temu | |
| AGENTS.md | 1 tydzień temu | |
| README.md | 1 tydzień temu | |
| go.mod | 1 tydzień temu | |
| go.sum | 1 tydzień temu | |
| main.go | 1 tydzień temu | |
| opencode.json | 1 tydzień temu |
A command line tool for Schlundtech DNS. List your zones, inspect their records, and set them — from the terminal, no web interface.
go build -o schlundtech-dns .
Set your credentials once:
export SCHLUNDTECH_USER='your-user'
export SCHLUNDTECH_PASSWORD='your-password'
export SCHLUNDTECH_CONTEXT='10'
SCHLUNDTECH_CONTEXT is the context ID Schlundtech gave you when you applied
for gateway access. Every public implementation for Schlundtech uses 10, so
that is the value to try first — but yours is authoritative.
If your account has second-factor authentication enabled, also set
SCHLUNDTECH_TOKEN. To talk to the demo system instead of your live zones, set
SCHLUNDTECH_ENDPOINT=https://demo.autodns.com/gateway/.
Check that it works:
schlundtech-dns zones
schlundtech-dns zones
schlundtech-dns records list example.com
schlundtech-dns records list example.com --type TXT
schlundtech-dns records set example.com --name @ --type A --value 203.0.113.10
schlundtech-dns records set example.com --name @ --type TXT --value 'v=spf1 -all'
@ is the zone apex, www would be www.example.com. --ttl defaults to the
TTL the record already has.
A name and type can hold several values — pass --value more than once. Setting
any value replaces all existing ones for that name and type, so there is
nothing to delete first.
Every write touches public DNS and propagates within seconds. Preview first:
schlundtech-dns records set example.com --name @ --type A --value 203.0.113.10 --dry-run
Without --value this removes every value at that name and type:
schlundtech-dns records delete example.com --name @ --type TXT --value 'v=spf1 -all' --dry-run
schlundtech-dns records delete example.com --name @ --type TXT --value 'v=spf1 -all'
Every command takes --output table|json. table is the default.
schlundtech-dns records list example.com --output json | jq '.[].value'
Errors always go to stderr, so piping stdout stays clean.
There is no hardcoded list — --type takes whatever the gateway understands.
TXT, A, AAAA, CNAME, MX and the rest all work the same way.
Two notes:
NS and SOA are not worth touching. Changing them breaks zone delegation.MX is managed by Schlundtech alongside their mail routing. Editing it by
hand can break mail delivery for the domain.The gateway is InterNetX's AutoDNS XML API, reached at
gateway.schlundtech.de. Two things are worth knowing if you read the code:
The gateway allows three requests per second; the tool spaces its calls out accordingly.