Install the client

Install Peerlify on Windows, macOS or Linux, check that the service is running, and know where its files live.

Updated · ·By Ivan Vyshniak

Showing Windows instructions.

This page changes with your operating system.

The Peerlify client is a background service (peerlify-daemon) and the peerlify command-line tool, plus a desktop app on Windows and macOS. Install it once per computer. Use the switch above to show the steps for your operating system, or get the installer from the downloads page.

Requirements

Windows
  • Windows 10, Windows 11 or Windows Server, on x64, arm64 or x86.
  • An administrator account to install.
macOS
  • macOS 14 (Sonoma) or later. The installer refuses older versions.
  • An Apple silicon or Intel Mac. Download the installer for your Mac's chip; it's shown in Apple menu → About This Mac. The Apple silicon installer doesn't need Rosetta, and it won't install on an Intel Mac.
  • An administrator account to install and to approve the background service.
Linux
  • A distribution that uses systemd. The installer stops without it.
  • iproute2, installed automatically by the packages.
  • x86_64 or aarch64, with glibc.
  • /dev/net/tun, present on most systems; it may be missing in containers.
  • Root, or sudo.

Packaged distributions: Debian, Ubuntu and their derivatives (apt); Fedora, RHEL, CentOS, Rocky, AlmaLinux, Amazon Linux and their relatives (dnf or yum); openSUSE and SLES (zypper). Other systemd distributions use a self-contained tarball.

Install

Windows
  1. Download PeerlifySetup.exe from the downloads page, or with PowerShell:

    powershell
    iwr https://pkgs.peerlify.net/client/stable/windows/PeerlifySetup.exe -OutFile PeerlifySetup.exe
  2. Run it and click Install. Windows asks for administrator approval. The prompt may show Unknown publisher, because the installer engine that requests it isn't signed; PeerlifySetup.exe and the packages it installs are signed.

  3. The installer picks the package for your processor and installs it.

When it finishes, the Peerlify tray app opens and, if this computer isn't signed in, shows its sign-in window.

What gets installed:

  • Files in C:\Program Files\Peerlify\: the service, peerlify.exe and the tray app peerlify-tray.exe. The folder is added to the system PATH.
  • A Windows service named peerlify-daemon (display name MJ System Peerlify), started automatically, running as LocalSystem.
  • Windows Firewall rules Peerlify Inbound and Peerlify Outbound for the service.
  • Scheduled tasks Peerlify\PeerlifyAutoUpdate (daily) and Peerlify\PeerlifyUpdateOnBoot. See Keep the client up to date.
  • A Peerlify Start-menu shortcut to the tray app. The tray app doesn't start automatically at sign-in; start it from the Start menu.
  • A network adapter named Peerlify, created when the device connects.

For unattended installs, the standard installer switches work: PeerlifySetup.exe /quiet /norestart, or msiexec /i Peerlify_<version>_x64.msi /qn /norestart with a package from the downloads page. There are no installer options for signing in; run peerlify login --auth-key=… afterwards. See Install on servers and headless machines.

macOS
  1. Download the disk image for your Mac from the downloads page: Apple silicon (Peerlify_arm64.dmg) or Intel (Peerlify_x64.dmg).
  2. Open it and double-click Peerlify.pkg. Follow the installer and enter an administrator password.
  3. When the installer finishes, the Peerlify app opens and runs Set Up Peerlify:
    1. Welcome.
    2. Allow Peerlify to run in the background. Click Allow in Background. If macOS asks, open System Settings → General → Login Items & Extensions and turn on Peerlify under Allow in the Background. This step is required: until it's approved, nothing connects.
    3. Notifications. Optional.
    4. Sign in: Sign In with Browser, or paste an auth key and click Sign In with Auth Key. Sign In Later finishes setup without signing in.

Peerlify runs in the menu bar, without a Dock icon, and opens at login (Settings… → General → Open at Login).

What gets installed:

  • /Applications/Peerlify.app, which contains the menu-bar app, the background service and the peerlify command-line tool.
  • /usr/local/bin/peerlify, a small script that runs the tool inside the app. If it's missing, use Settings… → Advanced → Command-Line Tool → Install….
  • A background service registered by the app, labelled com.peerlify.daemon, running as root.
Linux

Run the installer:

shell
curl -fsSL https://pkgs.peerlify.net/install.sh | sh

The script asks for your sudo password once, at the start. It doesn't ask when run as root or when sudo needs no password. If a password is needed but there's no terminal to ask on (for example over a non-interactive SSH command), it stops and tells you to run it as root.

The script detects your distribution, adds Peerlify's signed package repository, installs the peerlify package, and enables and starts the peerlify-daemon service.

Options are passed as environment variables:

VariableEffect
NO_START=1Stop the service after installing. It stays enabled and starts at the next boot. With the tarball, the service is neither started nor enabled; run sudo systemctl enable --now peerlify-daemon when ready.
FALLBACK_TARBALL=1Install the self-contained tarball instead of a package.
VERSION=<x.y.z.b>Install a specific version, with all four parts.
shell
curl -fsSL https://pkgs.peerlify.net/install.sh | NO_START=1 sh

Arch Linux and derivatives: the script stops and suggests FALLBACK_TARBALL=1. Alpine: not supported, because it doesn't use systemd.

What gets installed (package):

  • /usr/bin/peerlify and /usr/bin/peerlify-daemon.
  • /etc/peerlify/appsettings.json, kept across upgrades if you edit it.
  • The systemd units peerlify-daemon.service and peerlify-update.timer.
  • The repository definition (/etc/apt/sources.list.d/peerlify.list, /etc/yum.repos.d/peerlify.repo or /etc/zypp/repos.d/peerlify.repo) and its signing key.

The tarball install puts the same binaries in /usr/bin and the unit in /etc/systemd/system/, but adds no repository and no update timer.

Sign the device in

shell
peerlify login

Open the link it prints and pick a network. On servers, use an auth key: peerlify login --auth-key=<key>. See Add a device.

Signing in doesn't need administrator rights.

Check that it's running

shell
peerlify status

Daemon: running means the service is up. After signing in, Data plane: active and an Address line mean the device is connected.

To check the service itself:

Windows
powershell
Get-Service peerlify-daemon
macOS
shell
sudo launchctl print system/com.peerlify.daemon
Linux
shell
systemctl status peerlify-daemon

Where files live

Windows
WhatWhere
ProgramsC:\Program Files\Peerlify\ (C:\Program Files (x86)\Peerlify\ for the x86 package on 64-bit Windows)
ConfigurationC:\Program Files\Peerlify\appsettings.json
Device identity and sessionC:\ProgramData\Peerlify\ (readable by SYSTEM and Administrators)
LogsC:\ProgramData\Peerlify\logs\logs\
macOS
WhatWhere
App, service and CLI/Applications/Peerlify.app
Configuration overrides/Library/Application Support/Peerlify/appsettings.json
Device identity and session/Library/Application Support/Peerlify/state/
Logs/Library/Application Support/Peerlify/logs/ (start-up errors and crashes: /Library/Logs/Peerlify/peerlify-daemon.log)
Linux
WhatWhere
Programs/usr/bin/peerlify, /usr/bin/peerlify-daemon
Configuration/etc/peerlify/appsettings.json
Device identity and session/var/lib/peerlify/
LogsThe system journal: journalctl -u peerlify-daemon

See Client configuration for the settings, and Device security for how keys are stored.

What works on each platform

WindowsmacOSLinux
Connect to the network, access rules, relays✓✓✓
Use an exit point✓✓✓
Be an exit point✓–✓
Reach peers by name (hosts file)✓✓–
Be shadowed✓✓ (after setup)–
Shadow others✓✓–
Desktop appTrayMenu bar– (CLI only)
Keys encrypted on disk✓ (DPAPI)––
Choose a release channel–✓–

Next steps

Was this page helpful?