deploy: Gateway als systemd-User-Dienst (Vorlage + Anleitung)

Vorlage deploy/voice-assistant.user.service + Anleitung (loginctl enable-linger,
systemctl --user). Laeuft ohne root und ueberlebt Logout/Reboot; .env wird aus dem
WorkingDirectory gelesen. va_llm-Container kommt via Docker restart-policy hoch.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-06-18 09:09:23 +02:00
commit 77026bff1b
2 changed files with 40 additions and 0 deletions

View file

@ -0,0 +1,27 @@
# systemd-User-Service (laeuft ohne root, ueberlebt Logout/Reboot mit linger).
#
# Installation:
# cp deploy/voice-assistant.user.service ~/.config/systemd/user/voice-assistant.service
# # Pfade unten ggf. anpassen
# loginctl enable-linger "$USER" # sudo noetig -> ueberlebt Logout/Reboot
# systemctl --user daemon-reload
# systemctl --user enable --now voice-assistant
# systemctl --user status voice-assistant
#
# Die App liest .env aus dem WorkingDirectory selbst (pydantic-settings) -> kein
# EnvironmentFile noetig. Der llama.cpp-Container (va_llm) laeuft separat via Docker
# (restart unless-stopped); lokale Modelle werden beim Start vorgeladen (Warm-up).
[Unit]
Description=Voice Assistant Gateway (user service)
After=network.target
[Service]
Type=simple
WorkingDirectory=/home/dschlueter/my_voice_assistant_v2/voice-assistant-scaffold
ExecStart=/home/dschlueter/my_voice_assistant_v2/voice-assistant-scaffold/.venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8003
Restart=always
RestartSec=2
[Install]
WantedBy=default.target