Skip to main content

Upgrade

Re-run the install command to upgrade. The binary is replaced atomically (downloaded to temp, then moved). Existing configuration is preserved — the config generation step is skipped when the config file already exists.
# Upgrade control plane to latest
curl -fsSL https://releases.zwrm.eu/zwrmd/install.sh | sudo bash

# Upgrade agent to latest
curl -fsSL https://releases.zwrm.eu/zwrmd/install.sh | sudo bash -s -- \
    --agent --control-plane-url=https://cp.example.com:8080

# Upgrade CLI to latest
curl -fsSL https://releases.zwrm.eu/zwrmd/install.sh | bash -s -- --cli

# Pin to a specific version
curl -fsSL https://releases.zwrm.eu/zwrmd/install.sh | sudo bash -s -- --version=v1.2.0

Canary testing

Test a new build before promoting to stable:
# Install canary control plane (without starting)
curl -fsSL https://releases.zwrm.eu/zwrmd/canary/install.sh | sudo bash -s -- \
    --base-url=https://releases.zwrm.eu/zwrmd/canary \
    --version=v<git_sha> --yes --no-start

# Verify the binary
/usr/local/bin/zwrmd --version

# Start when ready
sudo systemctl start zwrmd

Self-hosted mirrors

Override the release URL for self-hosted or mirrored distributions:
curl -fsSL https://releases.zwrm.eu/zwrmd/install.sh | sudo bash -s -- \
    --base-url=https://mirror.internal/zwrmd
Binaries are downloaded from {base_url}/{version}/{binary}-{os}-{arch}. Checksums are fetched from {base_url}/{version}/checksums.txt and verified with sha256sum.

Uninstall

# Uninstall control plane
sudo bash install.sh --uninstall

# Uninstall agent
sudo bash install.sh --uninstall --agent

# Uninstall CLI
bash install.sh --uninstall --cli

What gets removed

ModeRemovedPreserved
Control planeBinary, systemd service, /usr/local/share/zwrmd/, sysctl config, iptables rules/etc/zwrm/ (config), /var/lib/zwrm/ (data), Firecracker, kernel
AgentBinary, systemd service, sysctl config/etc/zwrm/ (config), /var/lib/zwrm/ (data)
CLIBinary
To fully remove config and data:
sudo rm -rf /etc/zwrm
sudo rm -rf /var/lib/zwrm