Skip to content

Upgrade

Pier has a built-in self-update flow.

  1. Open Settings → Updates.
  2. Click Check now — Pier compares the installed binary’s modification time against the latest GitHub release asset.
  3. If a newer version is available, click Update & restart. Pier downloads the new binary, does an atomic swap, and restarts via systemd.

The previous binary is kept at /opt/pier/bin/pier.old for rollback.

The dashboard flow replaces the pier core binary only. Two things on the host come from the installer instead, and self-update never touches them:

  • pier-net-helper — the privileged root daemon that applies the update and runs WireGuard mesh operations.
  • /etc/systemd/system/pier-net-helper.service — its systemd unit, which is what makes /run/pier/net.sock reachable by the unprivileged pier user.

That matters when a fix lands in the helper or its unit. To pick those up, re-run the installer on the server:

Terminal window
curl -fsSL https://pier.team/install | sudo bash

If Pier reports that the privileged helper is unreachable, this is the command to run — a node in that state cannot self-update at all, because the update is applied by the helper.

Terminal window
sudo systemctl stop pier
sudo curl -fsSL https://github.com/joveptesg/pier/releases/download/latest/pier-linux-amd64 -o /opt/pier/bin/pier.new
sudo chmod +x /opt/pier/bin/pier.new
sudo mv /opt/pier/bin/pier /opt/pier/bin/pier.old
sudo mv /opt/pier/bin/pier.new /opt/pier/bin/pier
sudo systemctl start pier
Terminal window
sudo systemctl stop pier
sudo mv /opt/pier/bin/pier.old /opt/pier/bin/pier
sudo systemctl start pier