Skip to content

Daemon Configuration

Understand skyportd configuration files, environment overrides, and TLS behavior.

/etc/skyportd/
├── config/
│ ├── default.toml # default settings (shipped with skyportd)
│ └── local.toml # written by skyportd during enrollment
├── volumes/ # server data volumes
└── skyportd # the daemon binary

skyportd loads configuration in order:

  1. config/default.toml — default values
  2. config/local.toml — overrides written during enrollment
  3. Environment variables — highest priority overrides

In normal usage, you do not need to manually edit these files. The daemon writes local.toml during enrollment and updates it as needed.

KeyDescriptionDefault
nameDisplay nameskyportd
uuidDaemon UUID (set during enrollment)00000000-...
tick_intervalInternal tick interval5s
shutdown_timeoutGraceful shutdown timeout30s

Stores the panel URL and credentials after enrollment. Managed automatically.

KeyOptionsDefault
leveldebug, info, warn, errorinfo
formatpretty, jsonpretty

Use json format for centralized logging systems.

KeyDescriptionDefault
worker_threadsTokio worker threads (0 = auto)0

Node-specific settings received from the panel: hostname, ports, SSL mode, TLS paths. Written automatically during enrollment.

Use the prefix SKYPORT_DAEMON with double underscores as separators:

Terminal window
export SKYPORT_DAEMON__PANEL__URL=https://panel.example.com
export SKYPORT_DAEMON__PANEL__CONFIGURATION_TOKEN=your-token
export SKYPORT_DAEMON__LOGGING__LEVEL=debug

When SSL is enabled for a node, the daemon checks default Let’s Encrypt paths:

/etc/letsencrypt/live/<fqdn>/fullchain.pem
/etc/letsencrypt/live/<fqdn>/privkey.pem

If those files exist, they are used automatically. If not, the daemon prompts for custom paths interactively.

FlagDescription
--configureClear enrollment and re-run the setup prompt
--debugEnable verbose debug logging
--helpShow help

To re-enroll the daemon with a different panel or token:

Terminal window
cd /etc/skyportd
sudo systemctl stop skyportd
sudo ./skyportd --configure

This clears the stored credentials and restarts the interactive enrollment flow.