Skip to content

Admin & TargetShot‑Connect

Überblick

TargetShot‑Connect verbindet den Schießstand mit der Cloud. Ohne Connect sind Login und Synchronisation nicht verfügbar.

Installation (Überblick)

  1. System vorbereiten (Docker/Compose oder Debian‑Service)
  2. TargetShot‑Connect installieren und mit dem Vereins‑Account verknüpfen
  3. 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:

  • git ist 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_action aus 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

  1. Nach Update suchen prüfen (lädt GitHub-Release, setzt Hinweis).
  2. Bei „Update verfügbar“ den Button Update starten wählen.
  3. Admin-Passwort eingeben (Schutz gegen versehentliche Klicks).
  4. 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 .env bzw. compose.env eingebunden, damit Docker Compose Variablen ersetzt.
  • Empfohlen: Beispiel kopieren, sensible Werte setzen (cp compose.env.example compose.env), anschließend per .env in 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.example sowie docker-compose*.yml. Die UI zeigt für sensible Werte Platzhalter (********) und schreibt Änderungen in /app/data/config.db.