Skip to content

macOS Installation

Nik Pottbecker edited this page Oct 12, 2026 · 1 revision

macOS installation

Supported systems

  • Apple Silicon (arm64) or Intel (x86_64)
  • Tailscale from the official macOS app, connected to a Tailnet
  • Python 3 at /usr/bin/python3
  • Git, curl and OpenSSL

Install the Apple Command Line Tools if Python or Git is missing:

xcode-select --install

Install

git clone https://github.com/nikpottbecker/tailnet-irl-server.git
cd tailnet-irl-server
./install-macos.sh
./selftest-macos.sh

The installer:

  1. Reads the active Tailscale IPv4 address and rejects non-Tailscale addresses.
  2. Downloads the correct MediaMTX build for the Mac architecture.
  3. Verifies it against MediaMTX's official SHA-256 manifest.
  4. Creates separate random publisher and reader credentials if none exist.
  5. Preserves existing credentials and configuration during updates.
  6. Installs two per-user LaunchAgents.
  7. Waits for the private dashboard health check before completing.

No sudo access is required for the application installation.

Installed layout

~/Library/Application Support/IRL Server/
├── app/
│   ├── bin/mediamtx
│   ├── irl-serverctl
│   ├── recording.sh
│   ├── rotate-credentials.sh
│   ├── start-mediamtx.sh
│   ├── status_server.py
│   └── VERSION
├── config/
│   ├── credentials.env
│   ├── mediamtx.template.yml
│   ├── profile.env
│   └── recording.env
├── logs/
└── state/
    ├── connection-history.json
    ├── mediamtx.yml
    └── recordings/

LaunchAgents:

~/Library/LaunchAgents/com.nik.irl-mediamtx.plist
~/Library/LaunchAgents/com.nik.irl-dashboard.plist

The state directory is mode 0700; the connection-history file is mode 0600.

Verify

./selftest-macos.sh
"$HOME/Library/Application Support/IRL Server/app/irl-serverctl" status

The self-test verifies Tailscale, both LaunchAgents, the MediaMTX API and that SRT listens only on the Tailscale address.

Logs

tail -f "$HOME/Library/Application Support/IRL Server/logs/mediamtx.log"
tail -f "$HOME/Library/Application Support/IRL Server/logs/dashboard.log"
tail -n 100 "$HOME/Library/Application Support/IRL Server/logs/"*-error.log

Update

cd tailnet-irl-server
git pull --ff-only
./install-macos.sh
./selftest-macos.sh

See Updates, backup and recovery before a production-critical upgrade.

Uninstall

./uninstall-macos.sh

This unloads and removes both LaunchAgents. Application data, credentials, recordings and history remain under ~/Library/Application Support/IRL Server/ for recovery or a later reinstall.

Clone this wiki locally