Setup einer neuen TOPAS-Kundeninstanz#
Für das Setup wird eine TOPAS-Theme-Installationsdatei benötigt. Bitte sicherstellen, dass diese vorliegt, bevor mit dem Setup begonnen wird.
Es empfiehlt sich, diese Anleitung vor dem Beginn des Setup einmal vollständig durchzulesen, um ggf. Unklarheiten möglichst im Vorfeld des Setup zu beseitigen.
Das Aufsetzen einer neuen Kunden-Instanz erfolgt in folgenden Schritten:
- den Webserver vorbereiten
- Umgebungsvariablen konfigurieren
- Contao und das TOPAS-Theme installieren
- Kundenspezifische Konfiguration
- Cronjobs einrichten
- Individualisierung
1. Den Webserver vorbereiten#
- Neues Verzeichnis auf dem Webserver einrichten
- Domain und SSL-Zertifikat konfigurieren
- Neue Datenbank anlegen
- Mercure-Dienst konfigurieren
Neues Verzeichnis auf dem Webserver einrichten#
Im Ordner
/topas24/clients/
ein neues Verzeichnis anlegen.
Darin dann folgenden Pfad anlegen:
live/contao/public/
Der fertige Pfad sollte dann so aussehen:
/topas24/clients/<KUNDENBEZEICHNER>/live/contao/public/
Domain und SSL-Zertifikat konfigurieren#
Die Domain muss so konfiguriert sein, dass diese auf das eben erstellte Verzeichnis (public) zeigt.
Verzeichnis schützen#
Es wird empfohlen einen .htaccess-Passwortschutz für das Verzeichnis einzurichten.
Neue Datenbank anlegen#
Eine neue Datenbank anlegen und die Zugangsdaten für die nächsten Schritte bereit halten.
Mercure-Dienst konfigurieren#
Die Domain der neuen Kundeninstanz muss im Mercure-Script hinzugefügt werden. Dieses befindet sich in folgendem Verzeichnis:
/www/htdocs/w01f9a1b/topas24/topas/hub.topas24.net/bin
Dort die Domain im Schlüssel CORS_ORIGINS zu den bestehenden Domains hinzufügen.
CORS_ORIGINS="https://theme.topas24.net https://drkcr.topas24.net"
Anschließend muss der Mercure-Dienst neu gestartet werden. Hierzu per SSH anmelden und in das Verzeichnis des Dienstes wechseln:
cd /www/htdocs/w01f9a1b/topas24/topas/hub.topas24.net/bin
Die Prozess-ID ermitteln. Diese befindet sich in der Datei pid.
cat pid
Den Dienst beenden:
kill <PROZESS-ID>
Den Dienst starten:
/bin/bash start-mercure.sh
Dienst-Status prüfen:
http://hub.topas24.net:3000/healthz
Wenn der Mercure-Dienst läuft, erzeugt dieser Aufruf eine leere Seite mit Status 200. Dieser Aufruf kann auch für ein Monitoring des Dienstes genutzt werden.
2. Umgebungsvariablen konfigurieren#
Einige Umgebungsvariablen müssen bereits vor der Installation gesetzt werden.
Dazu aus dem Theme-Projekt die Datei .env in den Contao-Ordner des in Schritt 1 angelegten Verzeichnisses kopieren
/topas24/clients/<KUNDENBEZEICHNER>/live/contao/.env
Im selben Ordner eine Datei mit Namen .env.local anlegen:
/topas24/clients/<KUNDENBEZEICHNER>/live/contao/.env.local
Folgendes in die .env.local einsetzen:
DATABASE_URL="mysql://<DB-USER>:<DB-PASSWORD>@<DB-HOST>/<DB-NAME>"
MAIL_FROM_ADDR="webmaster@skg-ev.de"
MAIL_FROM_NAME="TOPAS-Theme"
MERCURE_JWT_SECRET="!ChangeThisMercureHubJWTSecretKey!"
Datenbankzugang einrichten#
In der Zeile DATABASE_URL die Datenbankzugangsdaten aus Schritt 1 eintragen.
E-Mail-Adresse des Systemadministrators#
Die Angaben zu MAIL_FROM_ADDR und MAIL_FROM_NAME müssen zunächst einmal nur gesetzt sein und können später jederzeit angepasst werden.
Mercure Secret#
In der Zeile MERCURE_JWT_SECRET das Secret des Mercure-Servers eintragen.
Dieses befindet sich auf dem Webserver im start-mercure.sh Skript in folgendem Ordner.
/www/htdocs/w01f9a1b/topas24/topas/hub.topas24.net/bin
3. Contao und das TOPAS-Theme installieren#
Nun kann Contao und das TOPAS-Theme installiert werden.
- Contao-Manager herunterladen und auf den Webserver kopieren
- Installation mit dem Contao-Manager durchführen
Hintergrundinformation#
Contao-Manager herunterladen und auf den Webserver kopieren#
Die Datei Contao contao-manager.phar auf den Webserver in das public-Verzeichnis kopieren:
/topas24/clients/<KUNDENBEZEICHNER>/live/contao/public/
Nach dem Kopieren umbenennen in contao-manager.phar.php
Nun kann der Contao-Manager über die in Schritt 1 konfigurierte Domain aufgerufen werden:
https://<KUNDEN-DOMAIN>/contao-manager.phar.php
Installation mit dem Contao-Manager durchführen#
Benutzerkonto erstellen#
Ein Benutzerkonto erstellen und ein sicheres Passwort vergeben.
Dieses Konto steht in keinem Zusammenhang mit dem Contao Backend oder Frontend.

Systemprüfung#
Nach erfolgter Systemprüfung muss eine Änderung an der Serverkonfiguration vorgenommen werden.
Daher jetzt noch nicht auf Einrichtung klicken.
Composer-Resolver Cloud deaktivieren#
In der Zeile Serverkonfiguration auf Ändern klicken und im nächsten Schritt den Haken bei "Die Composer Resolver Cloud verwenden" entfernen.

Die Änderung speichern.
Installation starten#
Nun auf Einrichtung klicken und die Installation starten.

Prüfen, ob das Installationsverzeichnis korrekt ist. Systemdateien sollten in den Ordner Contao und öffentliche Dateien in den Ordner contao/public installiert werden.
Theme-Installation#
An dieser Stelle muss nun das TOPAS-Theme gewählt werden.
In der Auswahl Theme für Contao auswählen und dann die TOPAS-Theme-Installationsdatei auswählen.

Contao analysiert nun die Datei. Das Ergebnis sollte in etwa so aussehen:

Nun die Installation über den Button 'Installieren' starten.
Wichtig:
Es kann ggf. bis zu 5 Minuten dauern, bis der Installationprozess startet. Der Contao-Manager zeigt eine kurze Ladeanimation und zeigt anschließend wieder den Button und daher sieht es so aus, als würde nichts passieren. Hier muss nun trotzdem abgewartet werden bis folgender Bildschirm erscheint:

Der Contao-Manager installiert nun Contao und die weiteren Softwarekomponenten. Dieser Vorgang kann einige Minuten dauern.
Die Theme-Datenbank importieren#
Der Contao-Manager bietet nun an, die in der Installationsdatei enthaltene Theme-Datenbank zu importieren. In den Angaben unter Verbindungsparameter noch einmal prüfen, ob die korrekte Datenbank verbunden ist und anschließend auf Theme importieren klicken, um den Import zu starten.


Datenbank-Schema aktualisieren#
Falls eine Meldung über ausstehende Migrationen erscheint, Datenbank prüfen und anschließend die Migration ausführen.
Nach dem Import und etwaigen Migrationen müssen vom Contao-Manager noch einige Datenbank-Änderungen vorgenommen werden. Dies mit dem Button Ausführen starten.

Nun sollte folgender Bildschirm anzeigen, dass das Datenbank-Schema aktuell ist.
Auf Weiter klicken.

Es erscheint die Meldung, dass bereits ein Contao-Administrator-Konto existiert, da dieses mit dem Theme-Import angelegt wurde.
Auf Weiter klicken.

Geschafft :-)

Nun ist das System fertig installiert.
Im Contao-Backend anmelden#
Über den Button Contao-Login im Backend anmelden.
Das Zugangsdaten entsprechen denen des TOPAS-Theme-Systems.
Passwort ändern#
Nach dem ersten Login sollte direkt ein neues Passwort vergeben werden. Dazu rechts oben auf den Benutzernamen klicken und anschließend auf Profil. Ein sicheres Passwort eingeben und speichern. Beim nächsten Login muss dann das neue Passwort eingegeben werden.
Dateiverwaltung konfigurieren#
Unter System → Dateiverwaltung die Ordner 'Inhalte', 'Seitenteaser', 'System' und 'theme' jeweils mit dem Stift bearbeiten und auf 'öffentlich' stellen.
Frontend prüfen#
Über die Domain sollte nun das Frontend aufrufbar sein.
4. Kundenspezifische Konfiguration#
Nun sollten die weiteren Einstellungen aus der Datei .env in der Datei .env.local überschrieben werden. Als Vorlage kann hierzu die .env.local Datei aus dem TOPAS-Theme-System herangezogen werden.
Konfiguration#
.env.local
| Einstellung | Standardwert | Anpassung erforderlich | Erläuterung |
|---|---|---|---|
| Framework | |||
| APP_SECRET | - | - | wird bei der Contao-Installation automatisch gesetzt |
| DATABASE_URL | - | Ja | Datenbankzugang, muss vor Installation manuell gesetzt werden (s. 1) |
| MAILER_DSN | - | Ja | SMTP-Einstellungen für den Mailversand. (s. 2) |
| Contao | |||
| MAIL_FROM_ADDR | - | Ja | E-Mail Adresse des Systemadministrators |
| MAIL_FROM_NAME | - | Ja | Absendername des Systemadministrators |
| CONTAO_BACKEND_BADGE_TITLE | - | Ja | Systemname (erscheint im Contao-Backend) |
| CONTAO_BACKEND_CUSTOM_CSS | - | - | Pfadangabe individuelles Backend-CSS (z.B. /files/theme/backend/lafli-contao-backend-facelift.css) |
| Mercure | |||
| MERCURE_URL | https://hub.topas24.net:3000/.well-known/mercure | - | URL des Mercure-Servers. Muss in der Regel nicht überschrieben werden. |
| MERCURE_PUBLIC_URL | https://hub.topas24.net:3000/.well-known/mercure | - | URL des Mercure-Servers. Muss in der Regel nicht überschrieben werden. |
| MERCURE_DSN | mercure://default?topic={host}/user/{id}/notifier | - | Muss in der Regel nicht überschrieben werden. |
| MERCURE_CLIENT_URL | Ja | Domain des Kundensystems ohne (https://) | |
| MERCURE_JWT_SECRET | Ja | Mercure-Secret des Webservers (s. 3) | |
| TOPAS-Core | |||
| MEMBER_HOME_DIR | files/topas/members | - | Verzeichnis für Mitglieder-Dateien (z.B. Avatare) |
| TOPAS-Content-API | |||
| TOPAS_CONTENT_API_KEY | - | Ja | API-Key für das TOPAS-Content-System |
| TOPAS_CONTENT_API_URL | https://content.topas24.net/topas-content-api | Ja | Da das Content-System per htaccess geschützt ist müssen die Zugangsdaten mit in die URL aufgenommen werden. |
| TOPAS_CONTENT_API_FILES_URL | https://content.topas24.net | Ja | Da das Content-System per htaccess geschützt ist müssen die Zugangsdaten mit in die URL aufgenommen werden. |
| TOPAS_CONTENT_DIR | files/topas/content | - | Verzeichnis für Dateien aus den Inhalten, die über das TOPAS-Content-System bezogen werden |
| TOPAS-Frontend | |||
| TOPAS_FRONTEND_TOPAS_CUSTOM_TITLE | Telematisches Patienten- und Angehörigen System | Ja | System-Titel für die Ersetzung von Platzhaltern |
| TOPAS_FRONTEND_TOPAS_CUSTOM_SHORT_TITLE | TOPAS Theme | Ja | Kurzer System-Titel für die Ersetzung von Platzhaltern |
| TOPAS_FRONTEND_TOPAS_CUSTOM_OPERATOR | Sächsische Krebsgesellschaft e.V. | Ja | Betreibername für die Ersetzung von Platzhaltern |
| TOPAS_FRONTEND_TOPAS_CUSTOM_OPERATOR_EMAIL | info@skg-ev.de | Ja | Betreiber-E-mail für die Ersetzung von Platzhaltern |
| TOPAS_FRONTEND_TOPAS_CUSTOM_OPERATOR_URL | https://www.skg-ev.de | Ja | Betreiber-Website für die Ersetzung von Platzhaltern |
| TOPAS_FRONTEND_TOPAS_CUSTOM_OPERATOR_LOGO | files/System/Layout/logo.svg | Ja | Betreiber-Logo für die Ersetzung von Platzhaltern |
| Docs-Link | |||
| TOPAS_DOCS_LINK_DOCS_URL | https://docs.topas24.net | - | Link zur Dokumentation |
5. Cronjobs einrichten#
Für die Artikel-Synchronisation und die Benachrichtigungen müssen zwei Cronjobs eingerichtet werden:
- contao-cron.php
- contao-messenger-cron.php
Diese beiden Dateien müssen aus dem public Verzeichnis des Theme-Projekts in das public Verzeichnis der neuen Kunden-Instanz kopiert werden.
In beiden Dateien muss jeweils der Pfad an den Pfad der Kunden-Instanz angepasst werden.
Anschließend müssen beim Hosting-Provider zwei Cronjobs angelegt werden, welche die jeweiligen PHP-Skripte aufrufen.
contao-cron.php sollte einmal in der Nacht laufen. Idealerweise sollten die Cronjobs der jeweiligen Kunden-Instanzen nicht alle zum selben Zeitpunkt laufen.
contao-cron-messenger.php sollte jede Minute ausgeführt werden.
System-User#
TODO: Beschreibung hinzufügen/verbessern
translations/identifier.de.json
Frontend-Benutzer-Account des Betreibers im Backend anlegen und dessen ID in identifier.de.json hinterlegen.
Individualisierung#
Das Setup ist damit abgeschlossen und es kann die weitere Individualisierung erfolgen.