Configuration
Layered config merges (lowest → highest priority):
- System —
/etc/thirdflare-one/config.json(packaged installs) - User —
~/.config/thirdflare-one/config.json - Environment —
THIRDFLARE_*variables - Session —
POST /api/config/session(until daemon restart)
Implementation: lib/config.mjs.
Example file
See config/config.example.json.
json
{
"server": { "port": 4173, "bind": "127.0.0.1" },
"webui": { "enabled": false, "allowRemote": false },
"warp": { "cli": "warp-cli", "killSwitch": false },
"ui": { "openBrowser": true, "theme": "system", "locale": "en" },
"updates": { "channel": "stable", "checkOnStartup": true },
"tray": { "autostart": false }
}Inspect effective config
bash
curl -s http://127.0.0.1:4173/api/config | jqReturns merged config plus sources showing which layer set each key.
Session overrides
Use for in-app Settings changes without editing files:
bash
curl -X POST http://127.0.0.1:4173/api/config/session \
-H 'Content-Type: application/json' \
-d '{"ui":{"theme":"dark"}}'