[Unit] Description=pi-courier (messengers -> pi RPC) # The bridge spawns `pi --mode rpc` itself as a child process, so only this # one unit is needed. pi sessions persist to disk and are resumed on restart. After=network-online.target Wants=network-online.target [Service] Type=simple # Adjust User/WorkingDirectory to your setup. # WorkingDirectory is where the agent works (bash tool, project context). User=hermes WorkingDirectory=/home/hermes/Projects/pi-courier Environment=NVM_DIR=/home/hermes/.nvm # Optional: PI_MATRIX_HOMESERVER / PI_MATRIX_ACCESS_TOKEN / PI_MATRIX_TRUSTED_USERS / # PI_MATRIX_ENCRYPTION / PI_WORKDIR / PI_LOG_LEVEL / PI_LLM_API_KEY can live here # instead of ~/.pi/pi-courier.json EnvironmentFile=-/etc/pi-bridge.env ExecStart=/bin/bash -lc 'source "$NVM_DIR/nvm.sh" && exec node dist/standalone.js --workdir /home/hermes/Projects' Restart=on-failure RestartSec=5 # Basic hardening NoNewPrivileges=true PrivateTmp=true [Install] WantedBy=multi-user.target