Service install
Run `parley-server` as a user-level systemd or launchd service.
The parley-server service subcommands install Parley as a user-level service on Linux (systemctl --user) and macOS (launchctl). System-level installs are intentionally not offered — see ADR 0009.
The compiled parley-server binary must already be on $PATH. Run bun run install:bin first — see Compiled binaries.
Commands
parley-server service install # install + enable + start
parley-server service status # native systemctl / launchctl output
parley-server service logs # -f by default; --no-follow / -n 200
parley-server service restart # also: start, stop
parley-server service uninstall # add --purge to also remove ~/.config/parley/server.envConfig file
Configuration lives in ~/.config/parley/server.env. systemd references it via EnvironmentFile=; on launchd, a small shell stub sources it before launching the daemon.
# ~/.config/parley/server.env
PARLEY_PORT=7070
PARLEY_BIND=127.0.0.1
# PARLEY_DB_FILE=
# OTEL_EXPORTER_OTLP_ENDPOINT=Edit and run parley-server service restart — the unit re-reads the file on every restart.
Linger (systemd)
On systemd the service is per-user and stops at logout. To keep it running across logouts:
loginctl enable-linger $USERThis is a one-time, optional step.
Unsupported environments
Linux distros without systemctl --user (Alpine, WSL pre-systemd) error out with a clear message at install time. Parley still runs fine on those hosts via parley-server run directly — you just don't get a managed service unit.
Locations
| Platform | Unit / plist | Logs |
|---|---|---|
| Linux | ~/.config/systemd/user/parley-server.service | journalctl --user -u parley-server |
| macOS | ~/Library/LaunchAgents/com.parley.server.plist | ~/Library/Logs/parley-server.{out,err}.log |
The service logs subcommand shells out to the platform-appropriate viewer so you don't have to remember either.