Admin & TargetShot‑Connect¶
Überblick¶
TargetShot‑Connect verbindet den Schießstand mit der Cloud. Ohne Connect sind Login und Synchronisation nicht verfügbar.
Installation (Überblick)¶
- System vorbereiten (Docker/Compose oder Debian‑Service)
- TargetShot‑Connect installieren und mit dem Vereins‑Account verknüpfen
- Firewall/Netzwerk prüfen, Health‑Check überwachen
Betrieb¶
- Backups & Updates einplanen
- Status/Health prüfen (Kacheln „Cloud‑Sync“, „DB“, „Connector“)
- Supportkontakt: [email protected]
System-Update & Auto-Update¶
Voraussetzungen, die die UI prüft¶
Die Update-Karte validiert automatisch:
gitist verfügbar (wird benötigt, um neue Releases zu laden).docker& Docker Socket (/var/run/docker.sock) sind gemountet.- Das Workspace-Volume (
/workspace) liegt als Bind-Mount vor.
Fehlt eine Voraussetzung, erscheint der Hinweis in „System-Update“. Ohne „grün“ startete der Runner früher gar nicht.
Statusanzeige & neues Update-Modal¶
- Während kein Update läuft, bleiben Badge & Text im Zustand „Bereit“ / „Auf aktuellem Stand“.
- Sobald ein Update startet (manuell oder automatisch) zeigt die UI nun einen Vollbild-Modal mit:
- Lauftext/Aktionsbeschreibung (
current_actionaus dem Backend). - Animierter Fortschrittsleiste.
- Live-Log (gleiche Zeilen wie früheres Log-Panel).
- Der Modal lässt sich nicht schließen, bis das Backend wieder „idle“ meldet. Dadurch kann niemand mehr versehentlich abbrechen, während Docker Compose neu baut.
- Bei Fehlern bleiben die letzten Log-Zeilen im Modal sichtbar; das Polling informiert über neue Versuche.
Manuelles Update starten¶
Nach Update suchenprüfen (lädt GitHub-Release, setzt Hinweis).- Bei „Update verfügbar“ den Button
Update startenwählen. - Admin-Passwort eingeben (Schutz gegen versehentliche Klicks).
- Update-Modal beobachten; nach erfolgreichem Lauf lädt die UI automatisch neu.
Auto-Update konfigurieren¶
- Toggle „Automatisch aktiv“: aktiviert den täglichen Lauf.
- Dropdown „Auto-Update täglich um“: Stundenwert (UTC) – default stammt aus
TS_CONNECT_AUTO_UPDATE_HOUR(1 = 01:00 Uhr). - „Nächster Lauf“ zeigt berechneten ISO-Timestamp, solange Toggle aktiv ist.
- „Letzter Auto-Lauf“ übernimmt
auto_update_last_run. - Speichern löst einen Passwort-Dialog aus und persistiert in
data/update_state.json. - Solange der Runner aktiv ist, sperrt die UI Buttons & Formulare (disabled + Opacity).
Troubleshooting & Logs¶
- Läuft ein Update länger als erwartet, bleibt der Modal geöffnet und das Log zeigt den letzten Schritt (z. B.
docker compose up). - Fehlertexte stammen aus dem Runner; zusätzliche Hinweise erscheinen im
update_state.log. - Über „Health Summary“ lassen sich parallel DB/Kafka/Connector prüfen – die UI triggert das Polling weiter.
Einstellungen & Konfiguration¶
compose.env¶
- Vorlage:
ts-connect/compose.env.example. - Beim Deployment wird die Datei als
.envbzw.compose.enveingebunden, damit Docker Compose Variablen ersetzt. - Empfohlen: Beispiel kopieren, sensible Werte setzen (
cp compose.env.example compose.env), anschließend per.envin Compose referenzieren.
Wichtige Umgebungsvariablen¶
| Variable | Zweck | Standard |
|---|---|---|
UI_ADMIN_PASSWORD |
Passwort für den Admin-Dialog im UI. | change-me |
UI_BIND_IP |
Bind-Adresse der UI (z. B. 0.0.0.0 für LAN). |
0.0.0.0 |
TS_CONNECT_WORKSPACE |
Pfad im Container, aus dem Releases gelesen werden. | /workspace |
TS_CONNECT_WORKSPACE_HOST |
Host-Pfad, falls Compose außerhalb des Repo-Stamms liegt. | leer |
TS_CONNECT_BACKUP_DB, TS_CONNECT_BACKUP_USER, TS_CONNECT_BACKUP_PORT |
Steuerung der integrierten Backup-Postgres-Instanz. | targetshot_backup, targetshot, 5432 |
TS_LICENSE_API_KEY, TS_LICENSE_VARIANT_PLAN_MAP, TS_LICENSE_INSTANCE_* |
Lemon-Squeezy-Validierung (Lizenzschlüssel, Plan-Mapping, Gerätename). | siehe Beispiel |
TS_CONNECT_GITHUB_REPO |
Erzwingt ein anderes Repository für Updates (z. B. Fork). | automatisch aus laufendem Image |
TS_CONNECT_UPDATE_IMAGE |
Überschreibt das Image für den Update-Runner. | aktuelles UI-Image |
TS_CONNECT_UPDATE_CONTAINER_PREFIX |
Prefix des temporären Runner-Containers. | ts-connect-update |
TS_CONNECT_DOCKER_SOCKET |
Pfad zum Docker-Socket, der in den Runner gemountet wird. | /var/run/docker.sock |
TS_CONNECT_UPDATE_CACHE_SECONDS |
Cache-Dauer für Release-Infos (UI force=1 ignoriert Cache). |
3600 |
TS_CONNECT_AUTO_UPDATE_HOUR |
Default-Stunde für Auto-Update-Auswahl (0–23). | 1 |
TS_CONNECT_AUTO_UPDATE_POLL_SECONDS |
Polling-Intervall des Hintergrund-Workers. | 60 |
TS_CONNECT_AUTO_UPDATE_FORCE_RELEASE |
Erzwingt Release-Refresh bei Auto-Updates (true/false). |
true |
TS_CONNECT_UPDATE_COMPOSE_ENV |
Name der optionalen Compose-Env-Datei, die beim Update gemountet wird (wird automatisch gesetzt, wenn compose.env existiert). |
leer |
TS_STREAMS_TARGET_PREFIX |
Namensraum für Kafka-Topics des Streams-Transformers. | ts.sds-test |
ELASTIC_AGENT_ENABLED |
Aktiviert den Elastic-Agent-Health-Check in der UI. | false |
ELASTIC_FLEET_* |
Enrollment & Tags für den Elastic-Agent (optional). | leer |
Docker Compose startet den Elastic Agent nur, wenn das Profil elastic aktiv ist (COMPOSE_PROFILES=elastic oder docker compose --profile elastic up -d).
Hinweis: Weitere Variablen (z. B. für Kafka oder Secrets) befinden sich in den Dateien
compose.env.examplesowiedocker-compose*.yml. Die UI zeigt für sensible Werte Platzhalter (********) und schreibt Änderungen in/app/data/config.db.