Files
TeleportFling/contrib
petere 973c75f3b4 feat: add systemd user service for daemon mode
- contrib/teleportfling.service: per-user unit running the headless CLI
  with its own config (~/.config/teleportfling/daemon.json)
- contrib/install-daemon.sh: builds the binary, installs the unit and a
  starter daemon config
- contrib/README.md: install and management instructions
- todo.md: mark --config and daemon items complete
2026-09-19 08:35:12 +01:00
..

Running TeleportFling as a daemon

teleportfling (the headless CLI) can run as a per-user systemd service so the stream starts automatically with your graphical session.

Prerequisites

  • The binary must be built (the flake dev shell provides all cgo deps).
  • The screen-capture backend needs the session D-Bus and a PipeWire instance, which is why the unit is a user service tied to graphical-session.target.

Install

./contrib/install-daemon.sh

This:

  1. Builds cmd/teleportfling and installs it to ~/.local/bin/.
  2. Installs contrib/teleportfling.service as a user unit.
  3. Creates ~/.config/teleportfling/daemon.json on first run.
  4. Runs systemctl --user daemon-reload and enables the service.

Manage

systemctl --user start teleportfling    # start now
systemctl --user enable teleportfling   # start at login (done by installer)
systemctl --user status teleportfling   # check status / logs
journalctl --user -u teleportfling -f   # follow logs
systemctl --user stop teleportfling     # stop

Config

The unit passes --config ~/.config/teleportfling/daemon.json. Edit that file to change name, port, quality, fps, source, audio or announcement, then restart the service. Any flags you add to the ExecStart= line override the file values.