3.1 KiB
ID: DOC_000014 | Version: 0.2.1 | Status: Draft By: Codex (GPT-5)
Deployment
Lokale Installation (systemd)
./scripts/install.sh fuehrt folgende Schritte aus:
- legt Service-User/Group an
- kopiert das Projekt nach
/opt/sk - erstellt/aktualisiert
.venv - erstellt
/etc/skd/envausenv.example - schreibt eine systemd-Unit nach
/etc/systemd/system/skd.service
Beispiel:
sudo ./scripts/install.sh
sudo systemctl status skd.service
Manuelles Starten
./scripts/run.sh
Remote-Deploy (SSH)
./scripts/deploy.sh packt das Repo und deployt es auf einen Zielhost.
Konfiguration in deploy_hosts.yml.
Beispiel:
./scripts/deploy.sh kid-laptop
Deployment via ZIP
Im Repo liegt sk_deploy.zip. Dieses Archiv kann auf den Zielhost kopiert und nach /opt/sk entpackt werden.
Anschliessend Abhaengigkeiten installieren und Service neu starten:
sudo -u skd /opt/sk/.venv/bin/pip install -r /opt/sk/backend/requirements.txt
sudo systemctl restart skd.service
Update des Services
./scripts/update.sh zieht den Branch neu und fuehrt einen harten Reset aus.
Wichtig: Das Script nutzt git reset --hard origin/main.
sudo ./scripts/update.sh
Update-Client (Remote Update Service)
Die Update-API startet scripts/update_client.sh bzw. scripts/rollback_client.sh.
Wichtige ENV-Variablen:
SKD_UPDATE_SERVICE_URLSKD_UPDATE_PROJECT_IDSKD_UPDATE_TOKENoderSKD_UPDATE_TOKEN_FILEVoraussetzungen auf dem Host:curl,tar,sha256sum,python3,systemctlReferenz: Update-Service (intern) https://git.wlkns.org/stephan/update-webservice
Update-Service einbinden
- Service-URL und Projekt setzen:
SKD_UPDATE_SERVICE_URL=https://update.wlkns.org
SKD_UPDATE_PROJECT_ID=safe-kiddo-control
- Enrollment-Token besorgen (vom Update-Service-Admin) und einen Langzeit-Token erzeugen:
- Option A: Ueber lokale API
curl -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{\"enroll_token\":\"example-enroll-token\"}" \
http://localhost/update/enroll
- Option B: Direkter Enrollment-Client
./scripts/manual_enroll.py --url "https://update.wlkns.org" --project "safe-kiddo-control" --token "example-enroll-token"
- Token-Datei pruefen:
sudo cat /var/lib/skd/update_token
Hinweis: Der Update-Check ist erst moeglich, wenn der Langzeit-Token gespeichert wurde.
Enrollment-Tools:
scripts/manual_enroll.py: Enrollment direkt gegen den Update-Service, schreibt Token inSKD_UPDATE_TOKEN_FILE.scripts/enroll_local.py: Enrollment ueber die lokale API (/update/enroll), benoetigt Admin-Session;--tokensetzen (Default-Token ist nur Prototyp-Altlast).
Lokale Status/Logs:
SKD_UPDATE_STATUS_FILE(default/var/lib/skd/update_status.json)SKD_UPDATE_LOG_FILE(default/var/lib/skd/update_logs.jsonl)
Backup/Restore
- Bei Apply wird
/opt/sknach/opt/sk_backup_1.2.3_1700000000verschoben (Beispiel). - Rollback nutzt das letzte Backup (
/opt/sk_backup_*).
Weitere Dokumente
- Konfiguration:
docs/CONFIGURATION.md - Nutzung:
docs/USAGE.md - Troubleshooting:
docs/TROUBLESHOOTING.md