Einstellungen – App / API

Ports und Protokolle

Wird nach Neustart der Anwendung aktiv.
Standard: 5055. Auf diesem Port läuft das Admin-Webinterface.
Gespeichertes Direktprotokoll. Bei aktivem HAProxy-HTTPS lauscht Kestrel intern absichtlich per HTTP; die Auswahl bleibt trotzdem gespeichert.
Standard: 5056. Auf diesem Port sind nur App-API und Upload-/Logo-Dateien erreichbar.
HAProxy beendet HTTPS und leitet intern per HTTP auf den App-Port weiter. Kestrel benötigt dafür kein eigenes Zertifikat.
Ohne abschließenden Schrägstrich. Diese Adresse wird für API-, Logo-, Foto- und Medien-URLs an die App ausgegeben.
Gespeicherte Konfiguration
Webinterface: http://SERVER-IP:5055/
App-Direktmodus: http://SERVER-IP:5056/
HAProxy-HTTPS: aktiv

Seit dem letzten Start tatsächlich aktiv
Webinterface/Kestrel: http://0.0.0.0 / :::5055
App-API/Kestrel: http://0.0.0.0 / :::5056
Weichen gespeicherte und aktive Werte ab, ist ein Neustart erforderlich oder Kestrel ist wegen eines fehlenden HTTPS-Zertifikats auf HTTP zurückgefallen.
Öffentliche App/API: https://app-ticket.coteki.com
Mobile-Ping: https://app-ticket.coteki.com/api/mobile/ping
Bei HAProxy muss der öffentliche Request-Header X-Forwarded-Proto: https weitergegeben werden.

Freischaltung / Zugriffsschutz

Display- und Browser-Freigaben erscheinen unter Admin → App-Benutzer.

Mobile App – Logo / Farben

App-Logo
Die App verwendet automatisch das Logo aus dem normalen Logo-Bereich: im Hellmodus Logo, im Dunkelmodus Logo dunkel.
Hellmodus
Kein Logo im Logo-Bereich hinterlegt.
Dunkelmodus
Kein Dunkelmodus-Logo im Logo-Bereich hinterlegt.
Logo-Dateien werden unter Admin → Logo gepflegt, nicht mehr hier.
Diese Werte liefert die App-Konfiguration über /api/mobile/config an die App.

Mobile App – normale Benutzer

Normale freigegebene App-Benutzer können Tickets erstellen und die Ticketliste sehen.

Mobile App – Admin

Diese globalen Schalter bleiben für Benutzer mit der Rolle Admin als zusätzliche Obergrenze aktiv. Die individuellen Rechte werden unter „App-Benutzer“ pro E-Mail festgelegt.

Push-Art

Die App fragt diesen Wert beim Server ab. Bei Firebase registriert die App ein FCM-Token. Bei Timer fragt die App regelmäßig /api/mobile/notifications ab.
Gewünscht: 5 Minuten. Wird nur verwendet, wenn oben Timer-Abfrage aktiv ist.

Firebase Push für Android und iOS

Wird für echten System-Push ohne Timer verwendet. iOS wird über dasselbe Firebase-Projekt mit APNs-Konfiguration versorgt.
Service-Account-JSON aus Firebase/Google Cloud. Ein bereits gespeichertes Servicekonto wird bei einem leeren Feld beibehalten. Ohne diese Daten werden keine serverseitigen Pushs versendet.

Kurzes Firebase-Tutorial

  1. Firebase Console öffnen und ein Projekt erstellen.
  2. Android-App hinzufügen. Paketname aus der App verwenden: de.bs29.ticketapp.
  3. google-services.json herunterladen und in der Flutter-App unter android/app/google-services.json ablegen.
  4. In Google Cloud/Firebase einen Service Account Schlüssel als JSON erstellen.
  5. Die Firebase Project ID oben eintragen.
  6. Den kompletten Inhalt der Service-Account-JSON-Datei oben einfügen.
  7. Für iOS zusätzlich in Firebase die iOS-App hinzufügen und in Firebase die APNs-Konfiguration hinterlegen.
  8. App neu bauen, auf dem Gerät öffnen, Benachrichtigungen erlauben und App-Benutzer freigeben.

Pushbenachrichtigungen

Wird verwendet, wenn für einen Status kein eigener Text hinterlegt ist. Platzhalter: {ticket}, {status}, {problemfall}, {raum}
Die Liste erweitert sich automatisch, wenn neue Statuswerte angelegt werden.

Freigabe-/Sperrtexte

Die App speichert diesen Text zusammen mit dem Logo lokal und zeigt ihn an, wenn der Server nicht erreichbar ist.
Wenn deaktiviert, wird das Server-Feld in den App-Einstellungen ausgeblendet. Bei fehlender Serververbindung wird es trotzdem eingeblendet.
Standard: 5 Sekunden. Danach zeigt die App den Bildschirm „Keine Verbindung zum Server“.
Wenn deaktiviert, wird die Timeout-Anzeige in den App-Einstellungen ausgeblendet.
Zurück

Manuelle Freitext-Pushnachricht senden

Es werden nur E-Mail-Adressen angezeigt, die sich in der App registriert haben.
Bei Firebase wird sofort gesendet. Bei Timer-Modus erscheint die Nachricht beim nächsten App-Check.