Client Download

The Client Download page (also reachable from the sidebar or at /client-download) lets users download ncclient binaries served directly from your Nebula Commander instance. No internet access to GitHub is required after deployment.

LightDark
Client Download pageClient Download page in dark mode

Purpose

Install and run ncclient on a device to enroll with Nebula Commander and pull config and certificates. The enrollment code is obtained from the Nodes page (Enroll button for the node). The page is organized into tabs (Docker, Linux, Windows, macOS, Mobile) and provides the CLI for every platform, the Linux desktop app packages, and the Windows installer. Commands on the page are filled in with this instance’s own URL, so they can be pasted as-is.

CLI binaries (command-line ncclient)

Pre-built executables for:

PlatformFile name
Linux x86_64ncclient-linux-amd64
Linux ARM64ncclient-linux-arm64
Windows x86_64ncclient-windows-amd64.exe
macOS Intelncclient-macos-amd64
macOS Apple Siliconncclient-macos-arm64

Downloads are served from /downloads/ (e.g. /downloads/ncclient-linux-amd64). These binaries are only available if the frontend was built with client binaries included (e.g. Docker image built with DOWNLOAD_BINARIES=1). If the page shows no downloads or 404, use ncclient installation from releases or pip instead.

After download on Linux or macOS, make the file executable and place it on your PATH:

chmod +x ncclient-linux-amd64   # or the file you downloaded
# Move to /usr/local/bin or add the directory to PATH

On Windows, add the directory containing ncclient-windows-amd64.exe to your PATH or run it by full path.

Linux desktop app packages

The Linux tab leads with the package repository at pkgs.nebulacommander.com, the recommended install for Linux nodes other than lighthouses because it’s what enables automatic updates. It also offers the packages for direct download, in both .deb and .rpm form, plus a Flatpak:

FileContents
nebula-commander-client.deb / .rpmThe ncclient CLI
nebula-commander-service.deb / .rpmThe ncclient systemd service and the D-Bus/polkit integration the app uses
nebula-commander-desktop.deb / .rpmThe GTK4 desktop app
org.beardedtek.NebulaCommander.flatpakThe desktop app only; still needs nebula-commander-service installed on the host

Install all three together so the package manager resolves the order:

sudo apt install ./nebula-commander-client.deb ./nebula-commander-service.deb ./nebula-commander-desktop.deb
# or
sudo dnf install ./nebula-commander-client.rpm ./nebula-commander-service.rpm ./nebula-commander-desktop.rpm

The tab then shows the two remaining steps: start the service (sudo systemctl enable --now ncclient), then enroll in the desktop app or with sudo ncclient enroll.

For distributions the packages don’t cover, the tab’s Standalone binary or pip (advanced) section shows the binary downloads and a root-owned pip install, followed by the Linux setup order: enroll as root, sudo ncclient install, then check systemctl status ncclient.

Windows installer

The Windows tab offers the CLI on its own and the MSI installer (/downloads/NebulaCommander-windows-amd64.msi). The MSI installs the CLI, the Windows app, and a background Windows Service together, and can add them to PATH. The service does the actual work (polling, running Nebula, split-horizon DNS) as LocalSystem, so nothing here needs an admin prompt after installation.

The standalone app and service executables (NebulaCommanderApp-windows-amd64.exe, ncclient-service-windows-amd64.exe) are published on GitHub Releases but not on this page. They’re mainly for development: the service is only ever registered by the MSI, so for normal use install the MSI.

Getting the enrollment code

  1. In the Web UI, go to Nodes.
  2. Open the node for this device (or create one and create/sign a certificate).
  3. Click Enroll and copy the one-time code.
  4. On the device:
    • Windows MSI or Linux desktop app: open Nebula Commander, go to the Enrollment tab, and enter the server URL and code. The service picks it up automatically.
    • Linux service package, no desktop: sudo ncclient enroll --server https://YOUR_SERVER_URL --code XXXXXXXX (start the service first with sudo systemctl enable --now ncclient).
    • Linux standalone binary or pip: follow Linux setup: enroll as root, then sudo ncclient install.
    • Docker: set ENROLL_CODE in the compose file.
    • macOS and the plain Windows CLI: ncclient enroll --server https://YOUR_SERVER_URL --code XXXXXXXX, then ncclient run to start polling for config and certs.

See ncclient usage for full steps for each client, including how to re-enroll.