- 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
40 lines
1.3 KiB
Markdown
40 lines
1.3 KiB
Markdown
# 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. |