26.5.0-alpha pre-release

LocalSend-compatible receive for headless machines.

NightBridge lets official LocalSend apps send files to a daemon running on a server, NAS, Raspberry Pi, homelab box, or always-on workstation. Install the release binaries, then run the daemon directly or wire it into systemd.

LocalSend app Send file
NightBridge daemon $ night-bridge daemon pending peer: Pixel 8 received: photos.zip

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

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

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 \
  --install-dir "$HOME/.local/bin"

The curl installer supports Linux and macOS release tarballs.

Linux systemd unit

sudo useradd --system --home /var/lib/night-bridge \
  --shell /usr/sbin/nologin nightbridge
sudo install -d -o nightbridge -g nightbridge /var/lib/night-bridge/inbox
sudo install -d -m 0755 /etc/night-bridge

sudo tee /etc/systemd/system/night-bridge.service >/dev/null <<'EOF'
[Unit]
Description=NightBridge daemon
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=nightbridge
Environment=XDG_CONFIG_HOME=/etc
Environment=XDG_DATA_HOME=/var/lib
ExecStart=/usr/local/bin/night-bridge-daemon \
  --config /etc/night-bridge/config.toml \
  --identity /var/lib/night-bridge/identity.key \
  --trust-db /var/lib/night-bridge/trust.db \
  --inbox /var/lib/night-bridge/inbox \
  --alias "Home Server" \
  --localsend-receive-policy trusted
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable --now night-bridge.service

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 192.168.1.0/24 to any port 53317 proto tcp
sudo ufw allow from 192.168.1.0/24 to any port 53317 proto udp
sudo ufw allow from 192.168.1.0/24 to any port 53400 proto udp

Adjust the CIDR to your trusted LAN, for example 192.168.1.0/24.

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

Extended native transfer soak and post-refresh delta soak passed before the alpha tag was published.

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.