Zum Hauptinhalt springen

Tickessa installieren und aktualisieren

Diese Anleitung gehört zum Webpaket ab Version 0.13.0. Du kannst den Download auf einem Mac, Windows-PC oder Linux-Rechner vorbereiten. Tickessa selbst läuft auf deinem Webserver und wird im Browser bedient.

Welches Paket brauche ich?

WegPaketDeine Vorbereitung
Eigener Webspace, FTP/FTPS oder SFTPTickessa-Webpaket (.zip)Domain, HTTPS, leere Datenbank und Dateizugang
Eigener Server mit SSHDasselbe Tickessa-WebpaketDomain, HTTPS, Datenbank, PHP und Webserver
Hosting bei TickessaVorinstallierte KundenumgebungNach Zugangserhalt die eigene Domain/DNS verbinden
Lokale KISeparates Tickessa Local AI-Paket für Apple SiliconDownloadpaket, gekauftes Local-AI-Plugin, geeigneter Mac und private Verbindung

Ein Hostingkauf erzeugt keinen zusätzlichen Downloadbedarf. Die Bereitstellung und Zugangsdaten erhältst du von Tickessa. Timme und mittwald verwenden denselben Webpaketkern; Anbieterzugänge gehören ausschließlich in die Tickessa-Verwaltung. Die lokale KI ist ausschließlich als nachkaufbares Plugin für das Downloadpaket verfügbar. Hostingpakete sind nicht berechtigt. Der Kauf enthält ein Jahr Plugin-Updates und zeitlich unbegrenzte Nutzung. Weitere Updatejahre sind freiwillig verlängerbar; bereits berechtigte Versionen bleiben herunterladbar. Der Plugin-Updatezeitraum ist unabhängig vom Updatezeitraum des Hauptprogramms.

1. Download und Prüfung

Melde dich unter konto.tickessa.de an. Die Downloadliste zeigt die für dein Konto freigegebenen Versionen. Neue Updates richten sich nach deinem Updateanspruch; ältere berechtigte Versionen bleiben im Archiv. Lade das ZIP herunter und vergleiche seinen SHA-256-Wert mit der Angabe im Kundenkonto, bevor du es entpackst oder ausführst.

Mac (Terminal): shasum -a 256 tickessa-0.13.0.zip

Windows (PowerShell): Get-FileHash .\tickessa-0.13.0.zip -Algorithm SHA256

Linux: sha256sum tickessa-0.13.0.zip

Ein abweichender Wert bedeutet: Datei nicht verwenden und erneut herunterladen. Der serverseitige Assistent prüft zusätzlich die Herausgebersignatur und die enthaltenen Dateien. Ein Schlüssel aus einem beliebigen ZIP wird nicht automatisch als Herausgeber akzeptiert.

2. Server vorbereiten

  • Eigene leere MySQL-/MariaDB-Datenbank und ausschließlich dafür berechtigter Benutzer.
  • PHP 8.2–8.5 mit PDO, pdo_mysql, mbstring, OpenSSL, fileinfo, DOM, Sodium und ZIP.
  • Argon2id-Unterstützung für Passwörter. Für E-Mail-Abruf zusätzlich die IMAP-Erweiterung.
  • MariaDB 10.6–11.x oder MySQL 8.0/8.4 als vorgesehene Datenbankfamilien. Die für den konkreten Download tatsächlich geprüften Kombinationen stehen in dessen Versionshinweisen.
  • Gültige HTTPS-Domain. Hinter einem Proxy muss der Hoster HTTPS vertrauenswürdig an PHP übergeben; ein vom Besucher gesetzter Forwarded-Header reicht nicht.
  • Für Browserupdates ausreichende PHP-Upload-, Speicher- und Laufzeitlimits: mindestens Paketgröße für upload_max_filesize, etwas mehr für post_max_size, 256 MB memory_limit sowie ein Wartungsfenster mit ausreichend Laufzeit.
  • Freier privater Speicher für das neue Paket, die vollständige Sicherung und einen entpackten Wiederherstellungsstand. Bei großen Datenbeständen SSH verwenden.

3. Dateien per FTP/FTPS oder SFTP hochladen

  1. Entpacke das ZIP auf deinem Computer. Unter Windows und macOS ist die eingebaute ZIP-Funktion ausreichend; Linux bietet Archivverwaltung oder unzip.
  2. Lade den gesamten entpackten Paketordner einschließlich versteckter Dateien hoch. Verwende SFTP oder verschlüsseltes FTPS, sofern dein Hoster das anbietet.
  3. Stelle das Domainverzeichnis beim Hoster auf den Unterordner public/ ein. private/ und die Dateien neben public/ dürfen nicht öffentlich erreichbar sein.
  4. Erzeuge im Passwortmanager einen zufälligen Einrichtungsschlüssel mit mindestens 24 Zeichen. Speichere ihn als einzige Zeile in einer reinen Textdatei private/app/setup-key.txt. Verwende keinen bereits vorhandenen Zugang als Schlüssel.
  5. Setze private Dateien auf nur für den Webserverbenutzer lesbar (typisch 600), private Verzeichnisse auf 700. Gib niemals pauschal 777 frei. Öffentliche Dateien müssen vom Webserver lesbar sein; Eigentümer und Gruppen legt der Hoster fest.
  6. Apache verwendet die mitgelieferte .htaccess. Nginx benötigt die angepasste nginx.conf.example; der Serveradministrator setzt Domain, Pfade und TLS ein.

Kann dein Hoster kein eigenes public/-Webroot einstellen, nutze diese Anleitung nicht unverändert. Lass den Hoster eine sichere Verzeichnistrennung einrichten.

4. Einrichtungsassistent im Browser

Öffne https://deine-domain.example/install.php und gib den persönlichen Einrichtungsschlüssel ein. Erst dann wird der Assistent für deinen Browser geöffnet. Er fragt Domain, Instanzname, Datenbank, erstes Administratorkonto und erstes Projekt ab. Geheimnisse bleiben auf deinem Server; sie werden nicht im Tickessa-Kundenkonto gespeichert.

Der Installer verweigert eine bereits befüllte Datenbank. Nach erfolgreichem Abschluss ist die Ersteinrichtung gesperrt und die Schlüsseldatei wird entfernt. Speichere den einmalig gezeigten Cron-Benutzer und das Cron-Passwort im Passwortmanager. Melde dich danach als Administrator an und richte Postfach und Cronjob beim Hoster ein. KI, öffentliche Portale und automatischer Versand werden getrennt aktiviert.

Abgebrochene Erstinstallation

Bei einem Abbruch vor den Datenbankänderungen kannst du im selben Browser erneut starten. Die Browserfreigabe läuft nach einer Stunde ab; der persönliche Schlüssel wird bis zum erfolgreichen Abschluss weiter benötigt.

Hat ein Abbruch bereits Tabellen angelegt, bleibt der erneute Erstinstallationslauf absichtlich gesperrt. Richte eine neue leere Datenbank ein oder lass ausschließlich die sicher als unvollständige Neuinstallation identifizierte Datenbank durch deinen Administrator zurücksetzen. Lösche niemals Tabellen einer bestehenden Installation. Eine bereits verwendete Tickessa-Installation wird über den Update-Assistenten aktualisiert.

5. Installation per SSH

Übertrage das ZIP mit SCP/SFTP oder lade es zunächst auf deinem Computer herunter. Vergleiche den SHA-256-Wert, entpacke in ein neues Verzeichnis und richte public/ als Webroot ein. Der Browser-Assistent bleibt auch bei SSH der einfachste Einrichtungsweg. Den persönlichen Schlüssel kannst du auf dem Server erzeugen:

php private/app/bin/setup-key.php

Alternativ: Lege eine nur lokal lesbare JSON-Datei mit den Feldern aus INSTALLATION.md außerhalb des Webroots an und verwende:

chmod 600 /sicherer/pfad/installation.json
php private/app/bin/verify-release.php
php private/app/bin/install.php /sicherer/pfad/installation.json

Lösche die Konfigurationsdatei anschließend. Passwörter gehören nicht in Kommandozeilenargumente, Shell-Verlauf oder Supportnachrichten.

6. Updates ab Version 0.13.0

  1. Lade das berechtigte neue ZIP aus dem Kundenkonto und prüfe die Prüfsumme.
  2. Lies die Versionshinweise, plane ein Wartungsfenster und pausiere den Cronjob.
  3. Melde dich in deiner Tickessa-Installation als Administrator an und öffne /update.php (auch über den Link in /install.php erreichbar).
  4. Wähle das ZIP und vergib ein starkes Sicherungskennwort mit mindestens 16 Zeichen. Speichere es getrennt im Passwortmanager. Es wird nicht auf dem Server gespeichert.
  5. Starte „Prüfen, sichern und aktualisieren“. Währenddessen sperrt Tickessa neue API- und Cronzugriffe. Noch laufende Zugriffe müssen zuerst beendet sein.
  6. Prüfe anschließend Anmeldung, Ticketliste und Anhänge und aktiviere Cron wieder.

Bei einem niedrigen Browser-Uploadlimit kannst du das unveränderte ZIP per FTP/SFTP nach private/app/storage/updater/package.zip übertragen und im Assistenten die entsprechende Option wählen. Entpacke ein Update niemals über die laufenden Dateien.

Das Paket wird vor Änderungen geprüft. Version und Voraussetzungen müssen passen; ältere oder gleiche Versionen werden abgelehnt. Die verschlüsselte Sicherung enthält Datenbank, Programmdateien, Konfiguration und Anhänge. APP_KEY, Konten und sonstige Einstellungen bleiben erhalten. Bei einem behandelbaren Fehler wird der vorherige Datei- und Datenbankstand wiederhergestellt; Sitzungen werden dabei beendet.

Die Sicherung liegt als .backup unter private/app/storage/updater/. Kopiere sie per SFTP auf einen getrennten sicheren Speicher. Das Kennwort muss separat gesichert sein. Ein Backup nur auf demselben Server schützt nicht vor Serververlust.

Unterbrochenes Update

Bleibt der Wartungsmodus nach einem Prozessabbruch aktiv, öffne /update.php erneut und wähle die Wiederherstellung. Dafür wird das Kennwort der Updatesicherung benötigt. Ist eine Anmeldung wegen des unterbrochenen Updates nicht mehr möglich, lege über den Serverzugang einen neuen zufälligen private/app/setup-key.txt mit mindestens 24 Zeichen an. Die Wiederherstellungsmaske verlangt dann diesen Schlüssel und das Sicherungskennwort. Nach der Wiederherstellung wird der Schlüssel entfernt. Ein falsches Kennwort verändert weder Dateien noch Datenbank.

Bei SSH kann derselbe Ablauf mit einem Kennwort aus einer privaten Datei erfolgen:

php private/app/bin/update.php apply /sicherer/pfad/tickessa-neue-version.zip < /sicherer/pfad/backup-passwort.txt
php private/app/bin/update.php recover < /sicherer/pfad/backup-passwort.txt

Vor Version 0.13.0 gab es noch keinen vollständigen Update-Assistenten. Solche Installationen benötigen den begleiteten Übergang mit Dateisicherung, Datenbanksicherung, Migration und Webrootwechsel aus UPDATE.md. Das neue ZIP nicht einfach darüberkopieren.

7. Diagnose und Support

Die Assistenten zeigen eine Diagnosekennung. Das private Updateprotokoll private/app/storage/updater/events.jsonl enthält nur Ablaufkennung, Schritt und Zeitpunkt. Der Serverfehlerbericht erhält feste Fehlercodes statt übermittelter Passwörter, Datenbankfehlermeldungen oder Ticketinhalte.

Übermittle an den Support die Version, Diagnosekennung und den relevanten festen Fehlercode. Eine automatische Übertragung von Protokollen ist nicht aktiv. Sende keine .env, SQL-Dateien, Sicherungskennwörter, Backups, Postfachzugänge oder Tickets.

8. Lokale KI und Hosting

Die lokale KI ist eine eigene Komponente für Macs mit Apple Silicon. Ein Mac mit Intel-Prozessor, Windows oder Linux gehört nicht zur freigegebenen lokalen KI-Plattform. Die Weboberfläche funktioniert weiterhin auf diesen Computern. Die Kopplung benötigt ein privates Netz oder eine vom Kunden eingerichtete VPN-Verbindung. Bei Shared Hosting ohne private Route ist eine automatische Verbindung derzeit nicht verfügbar. Öffne dafür keinen KI-Port ins öffentliche Internet. macOS-27-Kompatibilität wird erst nach einem tatsächlichen Test zugesagt.

Bei Tickessa-Hosting übernimmt Tickessa die Softwareinstallation. Du erhältst Anwendungszugang und Hinweise zur Domain. Domainregistrierung, Nameserverwechsel und DNS-Einträge erfolgen entsprechend deinem Vertrag beim Domainanbieter.