Compare commits

...

2 Commits

3 changed files with 24 additions and 0 deletions

View File

@@ -73,6 +73,7 @@ Example:
```toml ```toml
[daemon] [daemon]
# host = "localhost" # default: "localhost" (use reverse proxy for public access) # host = "localhost" # default: "localhost" (use reverse proxy for public access)
# # Use "0.0.0.0" for IPv4-only, "::" for IPv6-only (dual-stack depends on OS)
# port = 8443 # default: 8443 # port = 8443 # default: 8443
# log_level = "INFO" # default: "INFO" # log_level = "INFO" # default: "INFO"
# log_target = "stdout" # default: "stdout", or "syslog", "file" # log_target = "stdout" # default: "stdout", or "syslog", "file"
@@ -87,10 +88,13 @@ ssl_cert_file = "/etc/ddns-service/cert.pem" # required if ssl = true
ssl_key_file = "/etc/ddns-service/key.pem" # required if ssl = true ssl_key_file = "/etc/ddns-service/key.pem" # required if ssl = true
# proxy_header = "" # default: "" (disabled), e.g. "X-Forwarded-For" # proxy_header = "" # default: "" (disabled), e.g. "X-Forwarded-For"
# trusted_proxies = [] # default: [], e.g. ["127.0.0.1", "10.0.0.0/8"] # trusted_proxies = [] # default: [], e.g. ["127.0.0.1", "10.0.0.0/8"]
# thread_pool_size = 10 # default: 10
# request_timeout = 10 # default: 10 (seconds)
[database] [database]
# backend = "sqlite" # default: "sqlite", or "mariadb" # backend = "sqlite" # default: "sqlite", or "mariadb"
path = "/var/lib/ddns-service/ddns.db" # required for sqlite path = "/var/lib/ddns-service/ddns.db" # required for sqlite
# pool_size = 5 # default: 5 (MariaDB connection pool size)
[dns_service] [dns_service]
# dns_server = "127.0.0.1" # default: "127.0.0.1" (must be IP address) # dns_server = "127.0.0.1" # default: "127.0.0.1" (must be IP address)
@@ -276,6 +280,16 @@ ddns-service --daemon
ddns-service --daemon --debug ddns-service --daemon --debug
``` ```
### Signals
- **SIGHUP**: Reload configuration (all settings except database, host, port; SSL certs are reloaded)
- **SIGTERM/SIGINT**: Graceful shutdown (waits up to 5 seconds for active requests)
```bash
# Reload config
kill -HUP $(pidof ddns-service)
```
## HTTP API ## HTTP API
### Request ### Request

View File

@@ -1,5 +1,6 @@
[daemon] [daemon]
# host = "localhost" # default, use reverse proxy for public access! # host = "localhost" # default, use reverse proxy for public access!
# # Use "0.0.0.0" for IPv4-only, "::" for IPv6-only (dual-stack depends on OS)
# port = 8443 # default # port = 8443 # default
# log_level = "INFO" # default # log_level = "INFO" # default
# log_target = "stdout" # default, "stdout", "syslog" or "file" # log_target = "stdout" # default, "stdout", "syslog" or "file"
@@ -14,6 +15,8 @@ ssl_cert_file = "/etc/ddns-service/cert.pem" # required if ssl = true
ssl_key_file = "/etc/ddns-service/key.pem" # required if ssl = true ssl_key_file = "/etc/ddns-service/key.pem" # required if ssl = true
# proxy_header = "" # default (disabled), header name e.g. "X-Forwarded-For" # proxy_header = "" # default (disabled), header name e.g. "X-Forwarded-For"
# trusted_proxies = [] # default, list of trusted proxy IPs/CIDRs # trusted_proxies = [] # default, list of trusted proxy IPs/CIDRs
# thread_pool_size = 10 # default, max concurrent request handlers
# request_timeout = 10 # default, socket timeout in seconds
[database] [database]
# backend = "sqlite" # default, "sqlite", or "mariadb" # backend = "sqlite" # default, "sqlite", or "mariadb"
@@ -23,6 +26,7 @@ path = "/var/lib/ddns-service/ddns.db" # required for sqlite
# user = "ddns" # required for mariadb # user = "ddns" # required for mariadb
# password = "secret" # required for mariadb # password = "secret" # required for mariadb
# database = "ddns" # required for mariadb # database = "ddns" # required for mariadb
# pool_size = 5 # default, MariaDB connection pool size
[dns_service] [dns_service]
# dns_server = "127.0.0.1" # default, must be IP address # dns_server = "127.0.0.1" # default, must be IP address

View File

@@ -20,3 +20,9 @@ depend() {
start_pre() { start_pre() {
checkpath --directory --owner ${USER}:${GROUP} --mode 0750 /var/lib/ddns-service checkpath --directory --owner ${USER}:${GROUP} --mode 0750 /var/lib/ddns-service
} }
reload() {
ebegin "Reloading ${RC_SVCNAME}"
start-stop-daemon --signal HUP --pidfile "${pidfile}"
eend $?
}