35 lines
1.2 KiB
Desktop File
35 lines
1.2 KiB
Desktop File
[Unit]
|
|
Description=AVC optometry phone agent (Pipecat + Twilio, local GPU)
|
|
Documentation=file:///home/tocmo0nlord/avc-phone/README.md
|
|
# Needs the network up and Ollama serving the activeblue-avc model. Docker (Odoo) is
|
|
# only a soft dependency — the agent falls back to JSONL if Odoo is down — so it is
|
|
# ordered after but not required.
|
|
Wants=network-online.target
|
|
After=network-online.target ollama.service docker.service
|
|
# Restart rate limit (these are [Unit]-level directives).
|
|
StartLimitIntervalSec=300
|
|
StartLimitBurst=5
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=tocmo0nlord
|
|
Group=tocmo0nlord
|
|
WorkingDirectory=/home/tocmo0nlord/avc-phone
|
|
# run.sh loads .env, sets LD_LIBRARY_PATH for the CUDA libs, and execs the server.
|
|
ExecStart=/home/tocmo0nlord/avc-phone/run.sh
|
|
# A phone line should always come back up.
|
|
Restart=always
|
|
RestartSec=5
|
|
# Give model loads time before a failed start counts against the restart limit.
|
|
TimeoutStartSec=120
|
|
|
|
# Light hardening. Home is left writable on purpose: the app reads the shared venv +
|
|
# Kokoro models + HF Whisper cache under /home and writes the JSONL fallback, so a
|
|
# read-only home would risk breaking model-cache locks. /usr,/etc stay read-only.
|
|
NoNewPrivileges=true
|
|
ProtectSystem=full
|
|
PrivateTmp=true
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|