Container-Update
Diese Anleitung beschreibt den Prozess des Container-Updates für das charly-System auf macOS. Sie umfasst die Sicherung der Daten vom alten Server, die Installation der Container (charly-VM) auf dem neuen Server, das Update anhand der gesicherten Daten von charly in die Container und die notwendigen Schritte zur Verifizierung.
flowchart TD
A[Alter Server] -->|Daten-Export| B[ISO-Datei]
B -->|Kopieren auf| C[Neuer Server]
C -->|Container-Installation & Update| D[charly im Container]
Voraussetzungen:
- Ausreichend Speicherplatz auf dem Quellserver
- Administrator-Zugriff auf den Server
- Terminal mit Zsh
WICHTIG
Der Benutzer muss Administrator auf dem macOS sein und der Benutzer im Terminal muss der Nutzer sein, der auch unter macOS angemeldet ist.
Das charly-Server-Skript
Prüfen Sie, ob das charly-Server-Skript auf Ihrem alten Server installiert ist:
charly-server
Falls nicht können Sie es mit folgendem Befehl herunterladen:
curl -o charly-server-install.zsh https://charly-cdn-solutio.s3.amazonaws.com/release/macos/charly-server-install.zsh
Mit dem folgenden Befehl installieren Sie das charly-Server-Skript:
chmod +x charly-server-install.zsh
./charly-server-install.zsh
Export auf dem Server
Homebrew installieren
Prüfen Sie auf dem alten Server, ob homebrew installiert ist:
brew --version
Wenn keine Version zurückgeliefert wird (sondern command not found
), muss homebrew auf dem alten Server mit dem folgenden Befehl installiert werden:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
WICHTIG
Am Ende fordert die brew-Installation auf, noch einige Dinge als "Next steps" in der Kommandozeile einzugeben. Führen Sie die 3 Kommandos nacheinander aus.
Vorbereitung des Exports
Optional kann ein Vorbereitungs-Schritt ausgeführt werden. Bei diesem werden nötige homebrew Pakete aktualisiert & installiert.
Dies wird auch bei den nachfolgenden Aufrufen export
durchgeführt, sodass dieser Schritt übersprungen werden kann.
Wir empfehlen dennoch die Durchführung dieses Schrittes, um beim eigentlichen Export Zeit zu sparen.
Führen Sie dafür folgenden Befehl aus:
charly-server export prepare
Parameter für den Export
Mit dem folgenden Befehl können Sie sich über die Parameter für den export informieren:
charly-server export -help
Die wichtigsten Parameter für den export sind:
Parameter | Beschreibung | Standard |
---|---|---|
export_path |
Zielverzeichnis für den Export | ~/Documents/charly-server/export |
iso_file_path |
Pfad zur ISO Datei (per default liegt die Datei im export_path, bei einem Serverumzug können Sie aber auch direkt ein Netzwerklaufwerk angeben) | <export_path>/export.iso |
solutio_path |
Pfad zum solutio Installationsverzeichnis (nur nötig falls nicht automatisch gefunden) | /Applications/Solutio |
postgresql_path |
Pfad zur PostgreSQL Datenbank (nur nötig falls nicht automatisch gefunden) | /Library/solutio_postgresql |
Dry-Run-Modus für Konfigurationsüberprüfung für den Export
Führen Sie zunächst auf dem alten Server einen Dry-Run-Export durch, um die Konfiguration zu überprüfen und mögliche Fehler zu identifizieren. Dies kann im laufenden Betrieb erfolgen:
charly-server export dryrun -export_path /path/to/export
Der -export_path
ist der Pfad, in dem die zu exportierenden Daten und final die ISO-Datei abgelegt werden. Geben Sie einen Pfad zu einem leeren Ordner an.
TIPP
Der Dry-Run versucht, alle möglichen Fehlerquellen zu identifizieren, die beim Export der Daten und beim Container-Update auftreten könnten. Es wird nur temporär eine ISO-Datei erstellt, damit diese später nicht fälschlicherweise verwendet wird. Es wird eine Log-Datei angelegt, in der alle gefundenen Probleme dokumentiert werden. Dafür überspringt der Dry-Run Fehler, um eine vollständige Übersicht über potenzielle Probleme zu erhalten.
Empfehlung:
- Sie können den DryRun auch während des laufenden Praxisbetriebs durchführen.
- Ermitteln Sie die Dauer des Dry-Runs aus der Log-Datei anhand der Timestamps (Anfang und Ende der Log-Datei).
- Planen Sie für den tatsächlichen Migrationsprozess etwa die gleiche Zeit ein (kein laufender Praxisbetrieb dabei möglich).
WICHTIG
Das Skript prüft, ob im charly-Ordner sehr viele unsichtbare Dateien existieren und gibt entsprechend eine Warnung aus. Die Dateipfade der unsichtbaren Dateien werden in einer Datei invisible_files.txt
gespeichert und es erscheint eine Warnung.
Wenn Sie überflüssige Dateien entdecken und diese ein Schema haben, zB. .backupXYZ
, dann könnten diese möglicherweise mit Vorsicht gelöscht werden via:
find /Applications/Solutio/Client/Charly/ -type f -name '.backup*' -delete
Aber auf keinen Fall '*'
oder '.*'
verwenden, da dies alle bzw. alle unsichtbaren Dateien löschen würde.
Vollständiger Export für das Container-Update mit Deaktivierung des Alt-Systems
Nach der Vorbereitung des Exports und der erfolgreichen Überprüfung können Sie den vollständigen Export auf dem alten Server durchführen. charly kann in dieser Zeit nicht verwendet werden. Daher planen Sie dies bitte außerhalb Ihres laufenden Praxisbetriebes ein.
Mit dem folgenden Befehl starten Sie den Export und damit die Generierung der ISO-Datei.
charly-server export migration -export_path /path/to/export
Bei diesem Export-Modus wird auch die bisherige charly-Server Installation deaktiviert:
- die ncjs-Services werden beendet und deaktiviert
- der SMB-Share der Ablage wird entfernt
- Die Datenbank wird deaktiviert
WICHTIG
- Es wird ein vollständiges Backup erzeugt, also von allen Datenbanken und den Ablage-Daten.
- Die Dauer dieses Prozesses kann erheblich sein, besonders bei großen Datenmengen.
- Planen Sie basierend auf den Ergebnissen des Dry-Runs genügend Zeit dafür ein.
Nach dem Export
- Überprüfen Sie das generierte Logfile auf mögliche Probleme oder Warnungen.
- Stellen Sie sicher, dass die ISO-Datei erfolgreich erstellt wurde und am angegebenen Speicherort vorhanden ist.
Installation und Update von charly in die Container (charly-VM) auf dem neuen Server oder demselben Server
Bitte beachten Sie, dass die Installation der Container auf dem macOS Betriebssystem erfolgen muss, das direkt auf der Bare-Metal-Hardware läuft. Es ist nicht möglich, das System in einer virtualisierten macOS Umgebung zu installieren.
Für eine vollständige Anleitung zur Installation der charly Software unter macOS in einer VM, einschließlich aller erforderlichen Schritte und Konfigurationen, lesen Sie bitte die Installationsanleitung.
Installation vorbereiten
Wenn Sie einen neuen Server verwenden:
- Kopieren Sie die erstellte ISO-Datei auf Ihren neuen Server.
- Installieren Sie das charly-Server-Skript siehe oben
Bei Verwendung desselben Servers sind diese Schritte nicht notwendig.
Installieren Sie die notwendige Software für den Betrieb der Container. Hierbei werden Sie auch nach Ihrer Praxisgröße gefragt und darauf basierend die Systemvoraussetzungen überprüft.
charly-server install prepare
Installation der Container (charly-VM)
Starten Sie die geführte Installation mit folgendem Befehl:
charly-server install
Sie werden zunächst durch die Konfiguration geleitet. Bei Fragen konsultieren Sie bitte die vollständige Installationsanleitung. Am Ende jedes Konfigurationsabschnittes werden Sie gefragt, ob die Konfiguration korrekt ist oder ob Sie diese ändern möchten. Erst nach Bestätigung wird die Konfiguration unter /root/.config/charly-server gespeichert.
Nach der Konfiguration werden Sie nach dem Passwort gefragt, damit mittels sudo
die virtuelle Maschine gestartet werden kann.
Während des Installationsprozesses werden Sie darum gebeten, den Festplattenvollzugriff zu gewähren. Folgen Sie der Anleitung.
Zum Abschluss der Installation werden Sie gefragt, ob Sie Passwörter und Login löschen möchten. Wir empfehlen, wenn Sie sicher sind, dass nur berechtigte Personen auf den Server Zugang haben, diese Datei auf dem Server zu belassen, um die Wartung einfacher zu gestalten.
Kontrollieren Sie den Erfolg der Installation mittels
charly-server vm status
Führen Sie als nächstes die Schritte zur Installation des charly-Clients auf dem Server und Ihren Clients durch.
Prüfen Sie im Anschluss Ihre Funktionen für einen reibungslosen Praxisablauf in charly im Container (charly-VM).
Konfiguration bei mehreren Mandanten
Wenn die klassische Installation mehrere Mandanten verwendet hat, muss die Konfiguration entsprechend angepasst werden:
- Mandanten prüfen
- Konfiguration in
application.yml
eintragen - Container neu starten
- Konfiguration testen
Wenn nur ein Mandant verwendet wird, also der Standardfall, muss keine Anpassung vorgenommen werden.
1. Mandanten prüfen
Es muss geprüft werden, ob es mehrere Mandanten gibt. In diesem Fall entält die Datei Solutio.app/Mandanten.flg
einen oder mehrere Einträge wie (Beispiel):
1 767226552 Mandant 2
Außerdem muss es neben der Ablage
auch Mandant2
, möglicherweise Mandant3
und weitere geben.
2. Konfiguration eintragen
Status aufrufen, um den SMB Share zu finden:
charly-server vm status
Den SMB Share charly-config
mit dem User smbadminuser
und dem Administrator Passwort mounten (Siehe: Verbinden des Samba-Share "charly-config"). Darin findet sich die Datei conf2/_global/application.yml
. In diese Datei folgendes eintragen.
Bei einem 2. Mandanten:
de.solutio.tenant.ids: 1,2
de.solutio.charly.datasource.tenant2.host: database
de.solutio.charly.datasource.tenant2.username: postgres
de.solutio.charly.datasource.tenant2.password:
de.solutio.charly.datasource.tenant2.driver-class-name: org.postgresql.Driver
de.solutio.charly.datasource.tenant2.jdbc-url: jdbc:postgresql://${de.solutio.charly.datasource.tenant2.host}:${de.solutio.charly.datasource.tenant2.port}/${de.solutio.charly.datasource.tenant2.name}?ApplicationName=${spring.application.name}
de.solutio.charly.datasource.tenant2.name: solutiodb2
de.solutio.charly.datasource.tenant2.platform: postgresql
de.solutio.charly.datasource.tenant2.port: 5432
de.solutio.charly.filing.tenant2: /charly/mutable/Mandant2/Ablage
Bei einem 2. und 3. Mandanten:
de.solutio.tenant.ids: 1,2,3
de.solutio.charly.datasource.tenant2.host: database
de.solutio.charly.datasource.tenant2.username: postgres
de.solutio.charly.datasource.tenant2.password:
de.solutio.charly.datasource.tenant2.driver-class-name: org.postgresql.Driver
de.solutio.charly.datasource.tenant2.jdbc-url: jdbc:postgresql://${de.solutio.charly.datasource.tenant2.host}:${de.solutio.charly.datasource.tenant2.port}/${de.solutio.charly.datasource.tenant2.name}?ApplicationName=${spring.application.name}
de.solutio.charly.datasource.tenant2.name: solutiodb2
de.solutio.charly.datasource.tenant2.platform: postgresql
de.solutio.charly.datasource.tenant2.port: 5432
de.solutio.charly.filing.tenant2: /charly/mutable/Mandant2/Ablage
de.solutio.charly.datasource.tenant3.host: database
de.solutio.charly.datasource.tenant3.username: postgres
de.solutio.charly.datasource.tenant3.password:
de.solutio.charly.datasource.tenant3.driver-class-name: org.postgresql.Driver
de.solutio.charly.datasource.tenant3.jdbc-url: jdbc:postgresql://${de.solutio.charly.datasource.tenant3.host}:${de.solutio.charly.datasource.tenant3.port}/${de.solutio.charly.datasource.tenant3.name}?ApplicationName=${spring.application.name}
de.solutio.charly.datasource.tenant3.name: solutiodb3
de.solutio.charly.datasource.tenant3.platform: postgresql
de.solutio.charly.datasource.tenant3.port: 5432
de.solutio.charly.filing.tenant3: /charly/mutable/Mandant3/Ablage
3. Container neu starten
Die Container müssen neu gestartet werden, um die Konfiguration zu aktivieren:
charly-server vm docker-rebuild
4. Konfiguration testen
Starten Sie den charly-Client, melden Sie sich unter den Mandanten mit einem Benutzer an und prüfen Sie, ob der Web-Client geladen werden kann.
Reaktivieren des Altsystems
Wenn es bei der Installation der Container (charly-VM) zu unerwarteten Problemen kommt, kann die alte Installation wieder reaktiviert werden.
Zuerst suchen Sie im Logfile nach "PostgreSQL bin" und "PostgreSQL data" und notieren sich diese Pfade.
Setzen Sie die beiden Pfade im folgenden Befehl unter <bin pfad>
und <data pfad>
ein und führen Sie den Befehl aus, um die Datenbank wieder zu starten:
sudo -u SOLUTIOSQL <bin pfad>/pg_ctl start -D <data pfad>
Im Anschluss muss die alte Datenbank wieder aktiviert werden:
Je nachdem welche Pfade hier verwendet wurden:
sudo mv /Library/LaunchDaemons/postgresql-13.plist_off /Library/LaunchDaemons/postgresql-13.plist
sudo launchctl load -w /Library/LaunchDaemons/postgresql-13.plist
Die ncjs-Services müssen wieder aktiviert und gestartet werden. Navigieren Sie im Terminal in das entsprechende Verzeichnis und führen Sie die folgenden Befehle aus:
cd /Applications/Solutio/Server/ncjs
./acd.sh registerall
./acd.sh startall
Zuletzt muss der SMB-Share für das charly-Verzeichnis /Applications/Solutio/Client/Charly
wieder angelegt werden.
Gehen Sie dafür in die Systemeinstellungen unter "Freigaben" (Sharing) -> "Dateifreigabe" (File Sharing) und legen Sie für das Verzeichnis den SMB-Share wieder an.
Prüfen Sie, ob die alte, wiederhergestellte charly-Client Installation für Ihren Praxisalltag wieder funktioniert.
Version: 2.5.1
Datum: 24.06.2025