Daemon Configuration
Understand skyportd configuration files, environment overrides, and TLS behavior.
File layout
Section titled “File layout”/etc/skyportd/├── config/│ ├── default.toml # default settings (shipped with skyportd)│ └── local.toml # written by skyportd during enrollment├── volumes/ # server data volumes└── skyportd # the daemon binaryConfiguration files
Section titled “Configuration files”skyportd loads configuration in order:
config/default.toml— default valuesconfig/local.toml— overrides written during enrollment- 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.
Sections
Section titled “Sections”[daemon]
Section titled “[daemon]”| Key | Description | Default |
|---|---|---|
name | Display name | skyportd |
uuid | Daemon UUID (set during enrollment) | 00000000-... |
tick_interval | Internal tick interval | 5s |
shutdown_timeout | Graceful shutdown timeout | 30s |
[panel]
Section titled “[panel]”Stores the panel URL and credentials after enrollment. Managed automatically.
[logging]
Section titled “[logging]”| Key | Options | Default |
|---|---|---|
level | debug, info, warn, error | info |
format | pretty, json | pretty |
Use json format for centralized logging systems.
[runtime]
Section titled “[runtime]”| Key | Description | Default |
|---|---|---|
worker_threads | Tokio worker threads (0 = auto) | 0 |
[node]
Section titled “[node]”Node-specific settings received from the panel: hostname, ports, SSL mode, TLS paths. Written automatically during enrollment.
Environment variable overrides
Section titled “Environment variable overrides”Use the prefix SKYPORT_DAEMON with double underscores as separators:
export SKYPORT_DAEMON__PANEL__URL=https://panel.example.comexport SKYPORT_DAEMON__PANEL__CONFIGURATION_TOKEN=your-tokenexport SKYPORT_DAEMON__LOGGING__LEVEL=debugTLS behavior
Section titled “TLS behavior”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.pemIf those files exist, they are used automatically. If not, the daemon prompts for custom paths interactively.
CLI flags
Section titled “CLI flags”| Flag | Description |
|---|---|
--configure | Clear enrollment and re-run the setup prompt |
--debug | Enable verbose debug logging |
--help | Show help |
Reconfiguring
Section titled “Reconfiguring”To re-enroll the daemon with a different panel or token:
cd /etc/skyportdsudo systemctl stop skyportdsudo ./skyportd --configureThis clears the stored credentials and restarts the interactive enrollment flow.