Skip to content

Installing skyportd

Install the Skyport daemon on an x86_64 Linux node and enroll it with the panel.

This guide covers the current recommended installation path for the Skyport daemon.

Before you install skyportd, make sure:

  • the panel is already online
  • you have created a location and node in the panel
  • you have generated a configuration token for that node
  • the node machine is x86_64 Linux
  • Docker is installed and working

The latest GitHub release always includes a Linux x86 binary named skyportd.

Terminal window
sudo curl -fsSL https://github.com/skyportsh/skyportd/releases/latest/download/skyportd -o /usr/local/bin/skyportd
sudo chmod +x /usr/local/bin/skyportd

skyportd needs a place to store its config and local state. A simple layout is:

Terminal window
sudo mkdir -p /etc/skyportd/config
sudo chown -R root:root /etc/skyportd

You do not need to manually fill out a config file before first boot.

Run the daemon from the working directory:

Terminal window
cd /etc/skyportd
sudo /usr/local/bin/skyportd

On first boot, the daemon will prompt you for:

  • the panel URL
  • the one-time configuration token generated by the panel

After a successful enrollment, skyportd writes config/local.toml with the panel URL, enrollment details, and the node-specific runtime configuration issued by the panel.

Once enrollment succeeds, the daemon stores the configuration it needs in config/local.toml and can begin talking to the panel normally.

If SSL is enabled for the node, skyportd will try to use Let’s Encrypt paths based on the node FQDN:

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

If those files do not exist, the daemon will prompt you for certificate and key paths.

Create /etc/systemd/system/skyportd.service:

[Unit]
Description=Skyport Daemon
After=network.target docker.service
Requires=docker.service
[Service]
Type=simple
WorkingDirectory=/etc/skyportd
ExecStart=/usr/local/bin/skyportd
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Terminal window
sudo systemctl daemon-reload
sudo systemctl enable --now skyportd.service

Check the service log:

Terminal window
journalctl -u skyportd -f

Then confirm in the panel that the node shows as configured or online.