# 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 ```sh ./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 ```sh 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.