Configuration
The NullBore client reads configuration from ~/.config/nullbore/config.toml.
Legacy path
~/.nullbore/config.tomlis still supported. The installer auto-migrates to the XDG location.
Config file
# ~/.config/nullbore/config.toml
server = "https://tunnel.nullbore.com"
api_key = "nbk_your_api_key_here"
default_ttl = "1h"
debug = false
# Persistent tunnels (managed by the daemon)
[[tunnels]]
name = "api"
port = 3000
[[tunnels]]
name = "web"
port = 8080
The installer creates this file automatically. Edit it directly — there is no config set command.
Persistent tunnels
Define [[tunnels]] sections to have the daemon manage tunnels automatically. Changes are hot-reloaded every 10 seconds — no restart needed.
[[tunnels]]
name = "api" # tunnel name (becomes the subdomain slug)
port = 3000 # local port to expose
host = "localhost" # target host (default: localhost)
ttl = "2h" # TTL override (default: server default)
# auth = "user:pass" # require HTTP basic auth before relaying (optional)
[[tunnels]]
name = "web"
port = 8080
Then run nullbore daemon to start.
Environment variables
Environment variables override config file values. See the full list in the CLI Reference.
Important: Use
exportwhen setting environment variables — without it, the variable won't be passed to child processes.# Wrong — shell variable only, nullbore won't see it: NULLBORE_API_KEY="nbk_..." nullbore open 3000 # Right: export NULLBORE_API_KEY="nbk_..." nullbore open 3000
Debug mode
Enable verbose logging (relay connections, control channel, dashboard polling):
debug = true
Or pass --debug / -v to any command:
nullbore open --port 3000 --debug
Precedence
Environment variables > Config file > Defaults
Full CLI reference
See CLI Reference for all commands, flags, and environment variables — auto-generated from the source code.