diff --git a/LICENSE b/LICENSE index 11c2c16..8bf5f68 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2024 scriptos +Copyright (c) 2025 scriptos Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/README.md b/README.md index 65f69f4..7463400 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,98 @@ -Dokumentation wird bei Gelegenheit nachgereicht. +# 🧩 LiveKit IP Watch +Ein einfaches Bash-Script, das bei dynamischen Internetanschlüssen (z. B. DSL) automatisch die öffentliche IP-Adresse ermittelt, in die LiveKit-`config.yaml` einträgt und anschließend den Dienst neu startet. +Nach dem Neustart prüft das Script per HTTP-Healthcheck, ob LiveKit wieder erreichbar ist. + +Dieses Repository ist **begleitend zu meinem Blogbeitrag**, den du hier lesen kannst: +👉 [https://www.cleveradmin.de/blog/2025/10/livekit-dynamische-ip-automatisieren](https://www.cleveradmin.de/blog/2025/10/livekit-dynamische-ip-automatisieren) + +--- + +## ⚙️ Konfiguration + +Öffne die Scriptdatei `livekit-ip-watch.v1.sh` und passe folgende Variablen an: + +| Variable | Beschreibung | +|---------|--------------| +| `CONFIG_FILE` | Pfad zur LiveKit-Konfigurationsdatei (`config.yaml`). | +| `RUNTIME` | Modus: `"compose"` für Docker Compose oder `"docker"` für Plain Docker. | +| `COMPOSE_FILE_PATH` | Vollständiger Pfad zur `docker-compose.yaml`, falls `RUNTIME="compose"`. | +| `COMPOSE_SERVICE` | Name des LiveKit-Services in deiner Compose-Datei. | +| `CONTAINER_NAME` | Nur relevant, wenn `RUNTIME="docker"` – Name des Containers. | +| `ENABLE_IPV6` | `true` für IPv6, `false` für IPv4. | +| `WAIT_AFTER_RESTART` | Wartezeit (Sekunden) vor dem Healthcheck. | +| `HEALTHCHECK_DOMAIN` | Nur den DNS angeben, z. B. `rtc.matrix.techniverse.net`. Das Script prüft automatisch `/livekit/sfu/`. | +| `HEALTHCHECK_TIMEOUT` | Timeout in Sekunden für den HTTP-Check. | +| `NTFY_URL` / `NTFY_TOKEN` | Optional für Benachrichtigungen via ntfy. | + +--- + +## 📦 Voraussetzungen + +- bash +- git +- yq (optional, aber empfohlen für saubere YAML-Bearbeitung) + +--- + +## 🚀 Verwendung + +Script herunterladen und starten: + +git clone https://git.techniverse.net/scriptos/livekit-ip-watch.git +cd livekit-ip-watch +chmod +x livekit-ip-watch.v1.sh +bash livekit-ip-watch.v1.sh + +Beispielausgabe: + +```bash +➜ bash livekit-ip-watch.v1.sh +[2025-10-27 19:56:30] INFO: Neue IP erkannt: 152.53.118.246 (alt: none) +[2025-10-27 19:56:30] INFO: Backup erstellt: /home/scripts/livekit-ip-watch/backups/config.yaml.20251027195630.bak +[2025-10-27 19:56:30] WARN: yq nicht gefunden – Fallback-Editor wird verwendet. +[2025-10-27 19:56:30] INFO: Restart des Dienstes... +[+] Restarting 1/1 + ✔ Container matrix-element-call-livekit Started 46.8s +[2025-10-27 19:57:17] INFO: Warte 20 Sekunden... +[2025-10-27 19:57:37] INFO: Healthcheck OK. +``` + +[![asciicast](https://asciinema.techniverse.net/a/68.svg)](https://asciinema.techniverse.net/a/68) + +--- + +## ⏰ Automatische Ausführung (Cronjob) + +Damit die IP regelmäßig geprüft und aktualisiert wird, kannst du das Script z. B. alle 15 Minuten ausführen: + +crontab -e + +Und füge diese Zeile hinzu: + +```bash +*/15 * * * * /home/scripts/livekit-ip-watch/livekit-ip-watch.v1.sh >> /var/log/livekit-ip-watch.log 2>&1 +``` + +--- + +## 🧠 Hinweis + +Das Script erstellt bei jeder Änderung ein Backup der `config.yaml` und führt bei einem Fehler automatisch ein Rollback durch. + +--- + +Autor: Patrick Asmus +Repository: https://git.techniverse.net/scriptos/livekit-ip-watch.git + +--- + +## 💬 Support & Community + +Du hast Fragen, brauchst Unterstützung bei der Einrichtung oder möchtest dich einfach mit anderen austauschen, die ähnliche Projekte betreiben? Dann schau gerne in unserer Techniverse Community vorbei: + +👉 **Matrix-Raum:** [#community:techniverse.net](https://matrix.to/#/#community:techniverse.net) +Wir freuen uns auf deinen Besuch und helfen dir gerne weiter!