84 lines
1.4 KiB
Markdown
84 lines
1.4 KiB
Markdown
# DNS_SERVICE (frontend for dnsmasq)
|
|
|
|
- [routes](#routes)
|
|
- [build](#build)
|
|
- [configure](#configure)
|
|
- [example](#example)
|
|
- [requests responses](#requests-responses)
|
|
- [/api/settings](#settings)
|
|
- [/api/settings/file](#settingsfile)
|
|
|
|
## routes
|
|
|
|
- `GET` `/` - frontend
|
|
- `GET` `/api/settings` - get all settings
|
|
- `POST` `/api/settings` - set all settings
|
|
- `GET` `/api/settings/file` - get settings file content
|
|
- `POST` `/api/settings/file` - set settings file content
|
|
|
|
## build
|
|
|
|
```shell
|
|
go build
|
|
```
|
|
|
|
## configure
|
|
|
|
### example
|
|
|
|
```
|
|
DNSMASQ_CONFIG=/etc/dnsmasq.conf
|
|
|
|
ENABLE_TLS=true
|
|
CERT_FILE=/etc/dns_service/dns.home.com.crt
|
|
KEY_FILE=/etc/dns_service/dns.home.com.key
|
|
|
|
SERVER_ADDRESS=0.0.0.0
|
|
SERVER_PORT=8090
|
|
|
|
SYSTEM_INITIALIZATION=rc
|
|
```
|
|
|
|
## requests-responses
|
|
|
|
### settings
|
|
|
|
#### `/api/settings`
|
|
|
|
```json
|
|
{
|
|
"cache_size": 10000,
|
|
"hosts": {
|
|
"185.130.83.26": "gitea.home.com",
|
|
"192.168.3.1": "router.home.com",
|
|
"192.168.3.113": [
|
|
"samba.home.com",
|
|
"gitea.home.com",
|
|
"navidrome.home.com"
|
|
],
|
|
"192.168.3.119": [
|
|
"immich.home.com",
|
|
"jellyfin.home.com",
|
|
"portainer.home.com"
|
|
],
|
|
"192.168.3.155": "dns.home.com"
|
|
},
|
|
"resolv": [
|
|
"192.168.3.1",
|
|
"109.194.32.1",
|
|
"5.3.3.3",
|
|
"8.8.8.8"
|
|
]
|
|
}
|
|
```
|
|
|
|
### settingsfile
|
|
|
|
#### `/api/settings/file`
|
|
|
|
```
|
|
resolv-file=/etc/dnsmasq.conf.d/resolv.conf
|
|
addn-hosts=/etc/dnsmasq.conf.d/hosts
|
|
cache-size=10000
|
|
```
|