42 lines
1.2 KiB
Markdown
42 lines
1.2 KiB
Markdown
# tiny-dns
|
|
|
|
A simple DNS server that can be used to answer ACME DNS-01 or DynDNS queries.
|
|
|
|
- `POST /update` : Creates a new or updates an existing DNS entry.
|
|
- `POST /delete` : Deletes an DNS entry.
|
|
- `GET /status` : Returns the status of the server.
|
|
- `GET /dyndns/domain.example.com.` : Alternate way of updating DNS entries for DynDNS.
|
|
|
|
Authorization via `x-api-user` & `x-api-key` header-fields.
|
|
|
|
### Update URL
|
|
|
|
```bash
|
|
curl http://\[::1\]:3000/update -H "X-Api-User: <user>" -H "X-Api-Key: <super-secret>" \
|
|
--json '{"subdomain": "_acme-challenge.example.com", "rdata": "___validation_token_received_from_the_ca___"}'
|
|
```
|
|
|
|
### Test URL
|
|
|
|
```bash
|
|
dig @localhost -p 3053 -t TXT _acme-challenge.example.com
|
|
```
|
|
|
|
### DNS Config
|
|
|
|
```bind
|
|
|
|
example.com. IN A 192.0.2.1
|
|
www.example.com. IN CNAME example.com.
|
|
acme-dns.example.com. IN A 192.0.2.2
|
|
|
|
_acme-challenge.example.com. IN NS acme-dns.example.com.
|
|
_acme-challenge.www.example.com. IN NS acme-dns.example.com.
|
|
```
|
|
|
|
|
|
### Prior art
|
|
|
|
- [agnos](https://github.com/krtab/agnos) - Uses the DNS-NS entries, but no webapi
|
|
- [acme-dns](https://github.com/joohoi/acme-dns) - Provides a webapi for managing DNS entries.
|