Installation
Tela ships through three release channels (dev, beta, stable). Once
any one binary is installed, every subsequent update is one command:
tela update
telad update
telahubd update
The bootstrap step is the only one that needs a manual download. Pick whichever channel you want to follow.
Linux / macOS
Pull the latest binary from a channel manifest:
# Replace 'dev' with 'beta' or 'stable' as desired.
# Replace 'tela-linux-amd64' with the binary you want.
curl -fsSL https://github.com/paulmooreparks/tela/releases/download/channels/dev.json \
| python3 -c 'import json,sys; m=json.load(sys.stdin); print(m["downloadBase"]+"tela-linux-amd64")' \
| xargs curl -fLO
chmod +x tela-linux-amd64
sudo mv tela-linux-amd64 /usr/local/bin/tela
For telad and telahubd, repeat with the matching binary name.
Windows
From PowerShell:
$m = Invoke-RestMethod https://github.com/paulmooreparks/tela/releases/download/channels/dev.json
Invoke-WebRequest ($m.downloadBase + 'tela-windows-amd64.exe') -OutFile C:\Users\$env:USERNAME\bin\tela.exe
Make sure C:\Users\<you>\bin is on your PATH.
TelaVisor (desktop GUI)
For Windows, download the NSIS installer from any release page or directly from the channel manifest:
$m = Invoke-RestMethod https://github.com/paulmooreparks/tela/releases/download/channels/dev.json
Invoke-WebRequest ($m.downloadBase + 'telavisor-windows-amd64-setup.exe') -OutFile TelaVisor-Setup.exe
.\TelaVisor-Setup.exe
For Linux, the channel manifest also contains .deb, .rpm, and a bare
binary. For macOS, a .tar.gz of the .app bundle.
Channels
| Channel | What it is | Tag form |
|---|---|---|
dev | Latest unstable build, every commit to main | v0.8.0-dev.42 |
beta | Promoted dev build ready for wider exposure | v0.8.0-beta.3 |
stable | Promoted beta build, the conservative line | v0.8.0, v0.6.1 |
The model is documented in Release process.
Verifying downloads
Every download Tela does internally is SHA-256-verified against the channel
manifest before being installed. If you want to verify a manual download by
hand, every release also publishes a SHA256SUMS.txt asset:
curl -fLO https://github.com/paulmooreparks/tela/releases/download/v0.8.0-dev.8/SHA256SUMS.txt
sha256sum -c SHA256SUMS.txt --ignore-missing
Next steps after downloading
Downloading the binary is the first step, not the last. What to do next depends on which binary you installed:
| Binary | Next step |
|---|---|
telahubd | Follow Run a hub on the public internet. The walkthrough covers picking a deployment model (Caddy, nginx, Apache, Cloudflare Tunnel, or direct), installing the OS service, bootstrapping the owner token, and configuring the reverse proxy. |
telad | Follow Run an agent to register a machine with a hub. |
tela client | Follow First connection to pair with a hub and open your first tunnel. |
| TelaVisor | Launch the app after install; it walks you through pairing on first run. |
After bootstrapping
Every Tela binary has a update subcommand that follows the configured
channel. Once you have one of them installed, you no longer need to think
about manual downloads:
tela update
sudo telad update
sudo telahubd update
To switch channels:
tela channel set beta # client (and TelaVisor)
sudo telad channel set beta # agent (writes to telad.yaml)
sudo telahubd channel set beta # hub (writes to telahubd.yaml)
For a one-shot override that does not persist, pass -channel <name> to
the update subcommand: sudo telahubd update -channel beta. Any valid
channel name works (dev, beta, stable, or a custom channel you have
configured).
For the full picture see the Self-update and release channels how-to.