Skip to content

Operations

Nik Pottbecker edited this page Oct 12, 2026 · 2 revisions

Operations

Before a production

  1. Run the production preflight and resolve every failure.
  2. Confirm Tailscale on the iPhone and receiver.
  3. Confirm recording mode and retention.
  4. Send a short Moblin test.
  5. Verify video and audio in OBS.
  6. Stop the test and confirm the connection-history entry.
  7. If recording is enabled, play a completed segment.

macOS preflight:

"$HOME/Library/Application Support/IRL Server/app/irl-serverctl" doctor

Linux preflight:

sudo irl-serverctl doctor

Continue only when the final line is BEREIT or BEREIT MIT WARNUNG. A warning means disk capacity is already low and should be reviewed before a long recording.

Safe while live

  • View the dashboard
  • Run irl-serverctl status
  • Check recording status (sudo irl-serverctl recording status on Linux)
  • Read service logs
  • Open receiver previews

Interrupts the live path

  • irl-serverctl restart
  • Enabling or disabling recording
  • Rerunning an installer
  • Rotating credentials
  • Restarting Tailscale or the host

Schedule these operations before or after production.

Logs

macOS

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

Linux

sudo journalctl -u irl-mediamtx -f
sudo journalctl -u irl-dashboard -f
sudo journalctl -u irl-mediamtx -u irl-dashboard -b -n 100 --no-pager

MediaMTX logs can describe connections but should still be reviewed and redacted before sharing.

Restart

macOS:

"$HOME/Library/Application Support/IRL Server/app/irl-serverctl" restart

Linux:

sudo irl-serverctl restart

Self-test

Run from the source checkout:

# macOS
./selftest-macos.sh

# Linux
sudo ./selftest.sh

The self-test covers Tailscale addressing, native service state, dashboard/API health and SRT binding. It does not create a camera stream.

Full end-to-end development test

From a checkout with FFmpeg/ffprobe, curl and OpenSSL:

./tests/e2e-local.sh

This test downloads and verifies MediaMTX, generates temporary credentials, publishes H.264/AAC over authenticated SRT, reads the feed back and verifies a non-empty fMP4 recording. It uses temporary ports and files.

Connection history interpretation

  • Stream gestartet: publisher became ready.
  • Stream beendet/unterbrochen: publisher stopped; duration is included when known.
  • Media-Server nicht erreichbar: local MediaMTX API stopped answering.
  • Server wieder erreichbar: API recovered.

A service update may create offline/online events because both services restart. History records observed transitions; it cannot determine whether a stream end was intentional.

After a production

  1. Stop Moblin and confirm the stream ends.
  2. Disable recording if it is no longer needed.
  3. Wait for the final segment to close.
  4. Copy recordings to separate storage.
  5. Verify copied files before deleting originals.
  6. Review connection history and logs for unexplained interruptions.
  7. Record the installed version with the production notes.

See Recording and storage and Updates, backup and recovery.

Clone this wiki locally