diff --git a/README.md b/README.md index 682fda1..9e70654 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,7 @@ Example: ```toml [daemon] # 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 # log_level = "INFO" # default: "INFO" # 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 # proxy_header = "" # default: "" (disabled), e.g. "X-Forwarded-For" # 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] # backend = "sqlite" # default: "sqlite", or "mariadb" path = "/var/lib/ddns-service/ddns.db" # required for sqlite +# pool_size = 5 # default: 5 (MariaDB connection pool size) [dns_service] # 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 ``` +### 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 ### Request diff --git a/files/config.example.toml b/files/config.example.toml index 35d3462..be75fcf 100644 --- a/files/config.example.toml +++ b/files/config.example.toml @@ -1,5 +1,6 @@ [daemon] # 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 # log_level = "INFO" # default # 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 # proxy_header = "" # default (disabled), header name e.g. "X-Forwarded-For" # 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] # 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 # password = "secret" # required for mariadb # database = "ddns" # required for mariadb +# pool_size = 5 # default, MariaDB connection pool size [dns_service] # dns_server = "127.0.0.1" # default, must be IP address