UnderpassDocs

Getting started

Install

Install the app on Windows, macOS and Linux, and remove it again.

Install the app on every device you want in your network. Each install runs a small background service that keeps the device connected, even when nobody is signed in to the computer.

Every download is on getunderpass.com/download. You don't need an account to download, only to connect.

PlatformWhat you get
Windows 10 and 11 (64-bit)Installer with the app window, tray icon and command line
macOS (Apple silicon and Intel)Command line and background service, plus the Mac app
Linux (x86-64 and ARM64, including Raspberry Pi)Command line and a systemd service

Windows

  1. Download and run UnderpassSetup.exe. It asks for administrator rights.
  2. When it finishes, the Underpass window opens and your browser opens to sign in.
  3. Sign in, and approve the device if you're asked to.

The installer sets up:

  • the background service (Underpass, starts automatically)
  • the tray icon, started at every sign-in
  • the Underpass app in the Start menu
  • the command-line tool tailnet.exe in C:\Program Files\Tailnet

Note

On Windows the command-line tool is called tailnet, and its folder isn't added to PATH. Run it by its full path, for example & "C:\Program Files\Tailnet\tailnet.exe" status in PowerShell. Everything in these docs written as underpass … works the same as tailnet … there.

To update, run the newest installer over the old one. Your device keeps its name and address.

macOS and Linux

Run this in a terminal:

bash
curl -fsSL https://coord.getunderpass.com/download/install.sh | sh

It:

  1. downloads the build for your system and checks it against the published SHA256SUMS
  2. installs the command-line tool to /usr/local/bin/underpass (with tailnet as a second name)
  3. installs and starts the background service:
    • macOS: a launchd service, dev.tailnet.tailnetd
    • Linux: a systemd service, tailnetd (systemd is required)
  4. prints a link: open it and sign in to connect the device

On Linux, the installer also adds you to the tailnet group, so after you log out and back in once you can run underpass without sudo.

To install without connecting right away:

bash
curl -fsSL https://coord.getunderpass.com/download/install.sh | UNDERPASS_NO_UP=1 sh

Then connect when you're ready with sudo underpass up.

To update, run the install command again.

The Mac app

After the install command, download Underpass-macos.zip, unzip it and move Underpass.app to Applications. The app shows your connection and devices, and lets you sign in and out. It needs the background service from the install command.

Note

The Mac app isn't notarized yet. The first time you open it, macOS blocks it: open System Settings → Privacy & Security and click Open Anyway.

Check it worked

bash
underpass status

The first line shows this device's address and name, and connected. Below it, each other device and how it's reached (direct or relay). See status.

Servers and headless machines

On machines nobody signs in to, join with an auth key instead of a browser. See Add a server.

Uninstall

Windows

Use Settings → Apps → Underpass → Uninstall. Your device's keys are kept, so reinstalling brings it back as the same device. To remove the keys too:

powershell
& "C:\Program Files\Tailnet\tailnet.exe" uninstall --remove-keys

macOS

bash
sudo underpass uninstall               # keeps this Mac's keys
sudo underpass uninstall --remove-keys # removes them too

Then delete Underpass.app from Applications, and the leftover /usr/local/bin/tailnet link.

Linux

bash
sudo systemctl disable --now tailnetd
sudo rm /etc/systemd/system/tailnetd.service /usr/local/bin/underpass /usr/local/bin/tailnet
sudo systemctl daemon-reload
sudo rm -rf /var/lib/tailnetd   # only if you also want to remove this machine's keys

To take a device out of your network, also remove it in the dashboard under Machines.