26.5.0-alpha.1 pre-release

Receive LocalSend files on a headless server.

NightBridge is a LocalSend-compatible daemon for your NAS, homelab, or Raspberry Pi. Send from the official LocalSend app on any device; files land on your always-on machine — no screen, no cloud, no account.

  • Open source (AGPL-3.0)
  • Self-hosted
  • LAN-only · no cloud
NightBridge daemon starting a LocalSend v2 receiver on https 0.0.0.0:53317 and a native mesh listener on quic 0.0.0.0:53400, approving a pending peer, then receiving vacation-photos.zip and backup.tar.gz over the LAN.

Try the alpha

Install, run, send, approve.

The alpha path is intentionally small: get the daemon running, send from LocalSend, then approve trusted senders.

1

Install from release assets

curl -fsSL https://raw.githubusercontent.com/NightBridgeHQ/nightbridge/main/install.sh | \
  sh -s -- --version 26.5.0-alpha.1

The installer downloads a platform tarball, verifies SHA256SUMS, and installs the CLI, daemon, TUI, and nbrg shortcut.

1b

Or run the container preview

docker pull ghcr.io/nightbridgehq/nightbridge:26.5.0-alpha.1
docker run --rm \
  --network host \
  -v nightbridge-data:/var/lib/night-bridge \
  ghcr.io/nightbridgehq/nightbridge:26.5.0-alpha.1 \
  --alias "Home Server" \
  --localsend-receive-policy trusted \
  --inbox /var/lib/night-bridge/inbox

On Linux, host networking keeps LocalSend discovery and native UDP ports visible on the LAN. Pin :26.5.0-alpha.1 for the stable alpha image, or use :develop to track the latest build — today they point to the same image.

2

Run the daemon

night-bridge-daemon \
  --alias "Home Server" \
  --localsend-receive-policy trusted \
  --inbox "$HOME/NightBridgeInbox"

Trusted mode records unknown LocalSend senders as pending until you approve them.

3

Send from LocalSend

# Use the official LocalSend app.
# Pick "Home Server" on the LAN.
# Send the file.

NightBridge appears as a LocalSend-compatible peer.

4

Approve trusted peers

night-bridge peers pending-local-send
night-bridge peers approve-local-send <fingerprint> \
  --label "Phone"

Trusted peers can be allowed without reopening the desktop.

Run it as a service

The installer does not configure startup.

The curl installer only places binaries on disk. For an always-on Linux host, install the daemon as a systemd service and allow the LocalSend ports through the LAN firewall. macOS can run the same daemon directly; Windows is not wired into the curl installer for this alpha.

Linux and macOS install

mkdir -p "$HOME/.local/bin"
curl -fsSL https://raw.githubusercontent.com/NightBridgeHQ/nightbridge/main/install.sh | \
  sh -s -- --version 26.5.0-alpha.1 \
  --install-dir "$HOME/.local/bin"

The curl installer supports Linux and macOS release tarballs.

Linux systemd unit

Run NightBridge as a hardened system service with a dedicated user, persistent identity, and restart-on-failure. The complete, copy-pasteable unit and setup steps live in the daemon operations guide.

sudo systemctl enable --now night-bridge.service
systemctl status night-bridge.service

Full unit file: Daemon operations guide →

Docker / GHCR preview

docker pull ghcr.io/nightbridgehq/nightbridge:26.5.0-alpha.1
docker run -d --name nightbridge \
  --restart unless-stopped \
  --network host \
  -v nightbridge-data:/var/lib/night-bridge \
  ghcr.io/nightbridgehq/nightbridge:26.5.0-alpha.1 \
  --alias "Home Server" \
  --localsend-receive-policy trusted \
  --inbox /var/lib/night-bridge/inbox

Use the published GHCR image for a containerized Linux preview instead of host binaries. Pin :26.5.0-alpha.1 for the stable alpha, or :develop for the most recent build — today they are identical.

macOS run-direct alpha path

mkdir -p "$HOME/NightBridgeInbox"
"$HOME/.local/bin/night-bridge-daemon" \
  --alias "Home Server" \
  --localsend-receive-policy trusted \
  --inbox "$HOME/NightBridgeInbox"

A LaunchAgent can keep it running, but the alpha site keeps macOS startup explicit for now.

Windows alpha status

# Windows native install is not in install.sh yet.
# For this alpha, use WSL/Linux or build from source.
cargo build --release -p lsi-cli -p lsi-daemon -p lsi-tui

Windows CI build and tests are green, but polished Windows packaging is still pre-release work.

LAN firewall ports

sudo ufw allow from <trusted-lan-cidr> to any port 53317 proto tcp
sudo ufw allow from <trusted-lan-cidr> to any port 53317 proto udp
sudo ufw allow from <trusted-lan-cidr> to any port 53400 proto udp

Set the CIDR to your trusted LAN before enabling inbound discovery and transfer traffic.

Check status

systemctl status night-bridge.service
journalctl -u night-bridge.service -f
curl -k https://127.0.0.1:53317/api/localsend/v2/info

On macOS, use the same curl -k check against the daemon process you started.

Technical alpha notes

Commands and ports alpha testers will actually need.

NightBridge has two transfer surfaces in this alpha: LocalSend-compatible receive for official apps, and Native Mesh LAN for trusted NightBridge daemons.

Daemon parameters

--alias
Name shown to LocalSend and native peers.
--inbox
Directory where accepted LocalSend uploads land.
--localsend-port
HTTPS receive port for LocalSend v2. Default: 53317.
--localsend-receive-policy
prompt, trusted, or auto. Use trusted for normal alpha testing.
--native-port
Native QUIC receive port. Default: 53400/udp.
--api-grpc-port
Loopback CLI API port. Default: 53500.

LocalSend operations

night-bridge peers pending-local-send
night-bridge peers approve-local-send <fingerprint> \
  --label "Phone"
night-bridge send --peer "Phone" ./file.zip

First attempts from unknown LocalSend apps are rejected and recorded as pending when the daemon runs in trusted mode.

Native Mesh LAN preview

night-bridge peers list-native
night-bridge peers approve-native <alias-or-fingerprint> \
  --label "Server"
night-bridge send --native --peer "Server" ./file.zip

Native Mesh is NightBridge-to-NightBridge over LAN QUIC with pinned peer identity. Allow 53400/udp between trusted hosts.

Alpha status

Ready path first, next channels after the alpha proves out.

Alpha ready

LocalSend-compatible receive

Receive files from official LocalSend apps through a headless daemon with prompt, trusted, and controlled auto-accept policies.

Alpha ready

Operator surfaces

CLI, TUI, HTTP/gRPC API, Docker, systemd, DEB packaging, checksums, and SBOM are part of the release path.

Preview

Native Mesh LAN

Trusted NightBridge daemons can discover and send to each other on a LAN over native QUIC. This is advanced preview coverage.

Coming soon

More install channels

The first alpha stays focused on the curl installer and GitHub release assets. Broader packaging follows once the core path is proven by real operators.

Artifacts

Release files expected for alpha testers.

Start with the curl installer. Direct release assets stay available for operators who want to verify binaries, checksums, and SBOMs by hand.

Artifact Status
Linux and macOS binaries Published
Docker image Validated path
Debian package with systemd unit Published asset
SHA256SUMS and SBOM Published
Windows artifact Pre-release validation path

Release evidence

What was validated before publishing.

Native reliability

A 9-hour native + LocalSend mesh soak (2,109 cycles across 17 receiver restarts) passed before the alpha.1 tag, with flat memory and no leaks under sustained load.

LocalSend interop

Manual bidirectional official-app validation covers Android, iOS, macOS, Windows, and Linux LocalSend clients.

Release assets

Final preflight, CI, installer smoke, Docker smoke, DEB/systemd smoke, checksums, and SBOM generation passed for the alpha release path.