parley

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.env

Config 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 $USER

This 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

PlatformUnit / plistLogs
Linux~/.config/systemd/user/parley-server.servicejournalctl --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.

On this page