This repository has been archived on 2026-07-05. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
vynte-connect/apps/vynte-connect

Vynte Connect

Vynte Connect is a small macOS menu bar wrapper for NetBird. It gives internal Vynte users a branded one-button connect/disconnect flow for the self-hosted VPN at https://vpn.vyntehome.com.

The app does not implement VPN networking and does not store setup keys or NetBird secrets. It calls a bundled netbird CLI when one is packaged with the app, then falls back to an installed netbird CLI and polls the local NetBird daemon.

The app bundles Vynte visual assets and Montserrat for the menu bar popover UI. The UI is intentionally rudimentary: one flame button, a fixed Vynte gateway, connected stats, auto-connect, and quit.

Requirements

  • macOS 14 or newer.
  • A bundled or installed NetBird CLI.
  • A working NetBird daemon/network extension on the Mac.
  • User belongs to the correct NetBird groups.

Run from source

cd apps/vynte-connect
swift run

Build the app bundle

cd apps/vynte-connect
./Scripts/build-app.sh
open "dist/Vynte Connect.app"

To force a specific NetBird binary into the app bundle:

cd apps/vynte-connect
NETBIRD_BINARY_PATH=/path/to/netbird ./Scripts/build-app.sh

The build script copies that binary to dist/Vynte Connect.app/Contents/Resources/netbird. If NETBIRD_BINARY_PATH is not set, it tries Resources/netbird, then the first netbird on PATH.

Package an unsigned internal zip

cd apps/vynte-connect
./Scripts/package-zip.sh

Unsigned builds require users to approve the app in macOS Gatekeeper.

Signed build

cd apps/vynte-connect
export DEVELOPER_ID_APPLICATION="Developer ID Application: Your Name (TEAMID)"
./Scripts/sign-app.sh

For notarization:

export APPLE_ID="[email protected]"
export APPLE_TEAM_ID="TEAMID"
export APPLE_APP_PASSWORD="app-specific-password"
./Scripts/notarize-zip.sh

NetBird commands used

netbird up --management-url https://vpn.vyntehome.com --admin-url https://vpn.vyntehome.com
netbird down --management-url https://vpn.vyntehome.com
netbird status --json
netbird status --check ready

Connection flow

Clicking the flame runs netbird up against https://vpn.vyntehome.com. Vynte Connect polls NetBird status until the tunnel is ready.