NetherNode reads nethernode.toml from the working directory (another path
with --config or NETHERNODE_CONFIG), then environment variables, which
win. A missing file is fine: everything has a default. An environment
variable is NETHERNODE_ plus the section and key, joined by __, such as
NETHERNODE_HTTP__BIND. An unknown key or variable stops NetherNode from
starting, so typos show up straight away.
[http]
bind = "0.0.0.0:8080"
secure_cookies = "auto"
trust_proxy_headers = false
[data]
dir = "./data"
[docker]
socket = "unix:///var/run/docker.sock"
port_range_start = 30000
port_range_end = 30999
# module_port_range_start = 8100 # edge builds only
auto marks cookies Secure when the request arrived over HTTPS (directly or per X-Forwarded-Proto); always or never force it. HTTPS requests also get Strict-Transport-Security.
trust_proxy_headers
false
Take visitors’ addresses from CF-Connecting-IP / X-Real-IP / X-Forwarded-For. Turn on only behind a reverse proxy or tunnel, or anyone could fake their address.
Database (nethernode.db), encryption key (secret.key), servers/, backups/, caches. Back it up; keep secret.key private: it decrypts stored RCON passwords, API keys and two-factor secrets.
Logs go to standard output. RUST_LOG sets the level (info without it),
for example RUST_LOG=debug or RUST_LOG=info,nn_proxy=debug. Secrets NetherNode knows about (RCON
passwords, API keys, webhook URLs, session cookies) are masked in logs.