TCMSOFT – Inhalt

Datensicherung und Umzug

Die Daten einer Praxis liegen an zwei Stellen, und beide brauchen eine eigene Sicherung:

  1. Die Datenbank (Patienten, Akten, Bilder, Dokumente, Konten, Einstellungen). Sie sichert TCMSOFT selbst, mit der Backup-Funktion unter Stammdaten › Backup.
  2. Einige Dateien im Datenordner neben der Datenbank (Schlüssel, Einstellungen des Containers, Druckerkonfiguration, eigene Treiber und Schriften). Sie sichert die NAS bzw. der Server mit eigenen Mitteln.

Diese Seite erklärt, was gesichert werden muss, wie die Backup-Funktion und die Backup-Skripte arbeiten, wie man eine Sicherung wiederherstellt und wie man TCMSOFT auf neue Hardware umzieht.

Wichtig: Die Sicherungen von TCMSOFT sind mit dem Verschlüsselungspasswort der Installation verschlüsselt. Ohne dieses Passwort lassen sie sich nicht wiederherstellen. Bewahren Sie es getrennt vom Server auf, z. B. im Passwort-Manager der Praxis. Es steht auch in der Datenbank selbst – ist die verloren, hilft nur die getrennt aufbewahrte Abschrift.

In den Befehlen steht <Datenordner> für den Datenordner auf dem Server, z. B. /volume1/docker/tcmsoft (Synology) oder /var/lib/tcmsoft (Mikroserver). Befehle per SSH als Administrator (sudo -i).

Was gesichert werden muss

Im Datenordner Inhalt Sichern? Womit
mongodb/ Datenbank ja nur mit der Backup-Funktion von TCMSOFT, nicht als Dateikopie im laufenden Betrieb
keys/ Schlüssel für Anmeldung und DICOM-Bildkürzel, Datenbankpasswort mongo-passwort ja – ohne mongo-passwort startet TCMSOFT mit einer bestehenden Datenbank nicht Sicherung der NAS bzw. des Servers
tcmsoft.env Einstellungen des Containers (Port, HTTPS, Notbremsen) ja Sicherung der NAS bzw. des Servers
cups/ Druckerkonfiguration ja, sonst Drucker neu einrichten Sicherung der NAS bzw. des Servers
treiber/ eigene Druckertreiber (PPD-Dateien, .deb-Pakete) ja, falls genutzt Sicherung der NAS bzw. des Servers
schriften/ eigene Schriften ja, falls genutzt Sicherung der NAS bzw. des Servers
printagent/ Kopplung des PrintAgents im Container ja, sonst koppelt TCMSOFT ihn beim Start neu Sicherung der NAS bzw. des Servers
updater/ Status, Protokolle und Downloads des Update-Dienstes nein –
vor-update/ Kopie der Datenbank während eines Updates, danach leer nein –
bibliothek/, pharmindex/ TCM-Bibliothek, Arzneimittel-Suchindex nein, werden neu geladen –
tmp/ Zwischendateien, laufende Uploads, Export der Sicherung nein –
mongodb-datenversion Merker für das Datenformat nach einem MongoDB-Wechsel nein, verwaltet TCMSOFT selbst –

Außerhalb des Datenordners gehören dazu:

Die Kopie in vor-update/ ist kein Backup. Der Update-Dienst legt sie nur für die Dauer eines Updates an und löscht sie danach (siehe Updates von TCMSOFT).

Die Backup-Funktion von TCMSOFT

Menü: Stammdaten › Backup. Die Seite öffnet, wer das Recht Stammdaten hat. Die Bedienung für die Praxis beschreibt das Benutzerhandbuch unter „Benutzerhandbuch › Stammdaten › Backup“.

Was eine Sicherung enthält

Nicht enthalten sind die Datenbank tcmsoft (Inhalte der Bibliothek, bis TCMSOFT 2026.10.7.1 auch das Programmprotokoll) und die Dateien im Datenordner (siehe Tabelle oben).

Für jede Sicherung exportiert TCMSOFT die Datenbank zuerst nach tmp/ im Datenordner. Dort muss Platz für die Sicherung sein, beim Verschlüsseln kurzzeitig für zwei Exemplare (die unverschlüsselte Zwischendatei und die verschlüsselte Sicherung).

Verschlüsselungspasswort

Beim ersten Öffnen der Backup-Seite legt TCMSOFT ein zufälliges Verschlüsselungspasswort an. Das Auge-Symbol im Feld Verschlüsselungspasswort zeigt es an. Notieren Sie es gleich bei der Einrichtung und bewahren Sie es getrennt auf.

Ändern Sie das Passwort, gilt das neue nur für künftige Sicherungen. Ältere Sicherungen brauchen beim Wiederherstellen weiter das alte Passwort.

Automatische Backups (SFTP und S3)

Wozu: Eine tägliche Sicherung, die nicht auf dem Server selbst liegt – auf einem SFTP-Server (z. B. einer zweiten NAS oder beim IT-Dienstleister) oder in einem S3-Speicher.

  1. In der Karte Automatische Backups den Zeitpunkt wählen (Standard 12:00) und SFTP Upload und/oder S3 Upload einschalten.
  2. In der Karte SFTP Upload bzw. S3 Upload die Zugangsdaten eintragen:
    • SFTP: Server, Port (Standard 22), Server Pfad, Benutzername, Passwort;
    • S3: Endpunkt (leer = Amazon), Bucket Name, Region, Access Key, Secret Key, optional Pfad.
  3. Verbindung testen. Das speichert die Einstellungen und prüft die Verbindung.
  4. SFTP Backup erstellen bzw. S3 Backup erstellen für eine erste Sicherung von Hand.
  5. Speichern.

Woran Sie den Erfolg erkennen: Nach Schritt 4 erscheint „SFTP Backup erfolgreich erstellt.“ bzw. „S3 Backup erfolgreich erstellt.“, und die Datei liegt im Zielverzeichnis. Nach jedem täglichen Lauf steht in den Nachrichten (Glocke) „SFTP Backup erfolgreich“ bzw. „S3 Backup erfolgreich“.

Wenn nicht: In den Nachrichten steht „SFTP Backup war nicht erfolgreich.“ bzw. „S3 Backup war nicht erfolgreich.“ mit dem Grund, oder „Das Backup konnte nicht erstellt werden.“ Zugangsdaten, Erreichbarkeit des Ziels und den Platz in tmp/ prüfen. Am nächsten Tag versucht TCMSOFT es zur gewohnten Zeit erneut.

Gut zu wissen:

Sicherung von Hand: Download Backup

Download Backup oben in der Leiste erstellt sofort eine Sicherung und lädt sie im Browser herunter. Die Datei landet im Download-Ordner des Rechners, an dem der Browser läuft – nicht auf dem Server. Sie enthält alle Patientendaten (verschlüsselt) und gehört an einen sicheren Ort.

Diese Sicherung braucht man vor allem vor einem Umzug und vor einer Wiederherstellung.

Backup-API und Skripte

Wozu: Damit eine Sicherungssoftware oder ein Rechner im Praxisnetz täglich eine Sicherung abholt und länger aufbewahrt.

API-Key erzeugen: In der Karte Backup API auf API-Key generieren klicken. TCMSOFT speichert den Schlüssel sofort. Darunter stehen fertige Aufrufe für Linux / macOS (curl) und Windows (PowerShell) mit der Adresse, unter der die Seite gerade geöffnet ist; sie enthalten den API-Key im Klartext. Der API-Key ist ein Geheimnis: Wer ihn kennt, kann Sicherungen abholen.

Aufruf: GET /api/backup/download mit der Kopfzeile X-Api-Key. TCMSOFT erstellt dann eine Sicherung und liefert sie als Datei. Zum Beispiel unter Linux oder macOS:

curl -H "X-Api-Key: <API-Key>" "<TCMSOFT-Adresse>/api/backup/download" -o backup.zip

<TCMSOFT-Adresse> ist z. B. http://<NAS-Adresse>:8085 oder die HTTPS-Adresse. Ist HTTPS eingerichtet, die HTTPS-Adresse verwenden – sonst geht der API-Key unverschlüsselt durchs Praxisnetz. Die Datei ist auch unter dem Namen backup.zip verschlüsselt; die Wiederherstellung erkennt das am Inhalt.

Antwort Bedeutung
200 Die Sicherung wird geliefert.
401 „Ungültiger API-Key.“ Kein oder ein falscher Schlüssel.
429 „Ein Backup läuft bereits. Bitte später erneut versuchen.“ Es läuft immer nur ein Abruf über die API gleichzeitig.
500 „Fehler beim Erstellen des Backups.“ Die Sicherung ist gescheitert; Grund im Protokoll von TCMSOFT.

Windows-Vorlagen. Für einen Windows-Rechner gibt es zwei PowerShell-Skripte. TCMSOFT bietet sie nicht in der Oberfläche an; beim TCMSOFT-Support erfragen.

Backup-TCMSOFT.ps1 holt eine Sicherung ab und räumt alte auf. Oben im Skript unter „KONFIGURATION“ eintragen:

Einstellung Bedeutung Vorgabe
ServerUrl Pflicht. Adresse von TCMSOFT wie im Browser, ohne / am Ende, z. B. http://<NAS-Adresse>:8085 bzw. die HTTPS-Adresse HIER_SERVER_ADRESSE_EINTRAGEN
ApiKey Pflicht. Der API-Key von der Backup-Seite HIER_API_KEY_EINTRAGEN
BackupDir Ablageordner C:\TCMSOFT\Backups
KeepLastN so viele Sicherungen bleiben liegen, ältere werden gelöscht 14
TimeoutSec so lange wartet das Skript auf die Sicherung 300

Die Dateien heißen tcmsoft_backup_<JJJJ-MM-TT_hh-mm>.zip. Jeder Lauf schreibt seine Schritte mit Datum und Uhrzeit in backup.log im Ablageordner. Fehlen ServerUrl oder ApiKey, bricht es ab und nennt dort die fehlende Angabe. Das Skript enthält den API-Key im Klartext – nur auf einem geschützten Rechner ablegen.

Install-BackupTask.ps1 richtet die tägliche Ausführung in der Windows-Aufgabenplanung ein:

  1. Backup-TCMSOFT.ps1 nach C:\TCMSOFT\Scripts\ legen (oder $ScriptPath im Installationsskript anpassen).

  2. Install-BackupTask.ps1 in einer PowerShell als Administrator ausführen. Die Aufgabe heißt „TCMSOFT Automatisches Backup“ und läuft täglich um 02:00 ($DailyTime) unter dem Konto, das das Skript ausführt, auch wenn an dem Rechner niemand angemeldet ist. War der Rechner zur Planzeit aus, holt Windows den Lauf nach. Ein Kennwort speichert die Aufgabe nicht; deshalb erreicht sie keine Netzlaufwerke, BackupDir muss ein Ordner auf diesem Rechner sein. Soll die Sicherung auf ein Netzlaufwerk, die Aufgabe danach in der Aufgabenplanung öffnen und das Häkchen bei „Kennwort nicht speichern“ entfernen (Windows fragt dann das Kennwort ab).

  3. Gleich einmal testen:

    Start-ScheduledTask -TaskName 'TCMSOFT Automatisches Backup'
    

Woran Sie den Erfolg erkennen: In backup.log steht „Backup erfolgreich gespeichert: …“ mit der Größe, und im Ablageordner liegt eine neue Datei.

Wenn nicht: In backup.log steht der Fehler. „Backup bereits aktiv (HTTP 429)“ heißt, dass gerade ein anderer Abruf lief – der Lauf wird übersprungen. Bei großen Datenbeständen kann die Sicherung länger als TimeoutSec dauern; dann den Wert erhöhen. Die Aufgabe selbst endet nach 30 Minuten.

Die übrigen Dateien im Datenordner sichern

Die Dateien aus der Tabelle oben (keys/, tcmsoft.env, cups/, treiber/, schriften/, printagent/) sind nicht in der TCMSOFT-Sicherung. Sie gehören in die Sicherung der NAS bzw. des Servers.

Welches Werkzeug der NAS dafür geeignet ist und ob eine Momentaufnahme (Snapshot) des ganzen Datenordners samt laufender Datenbank zulässig ist, ist nicht dokumentiert und nicht getestet – beim TCMSOFT-Support abstimmen.

Wiederherstellen

Wozu: nach einer Fehlbedienung, bei einer beschädigten Datenbank oder beim Umzug.

Achtung: Beim Wiederherstellen wird die aktuelle Datenbank vollständig gelöscht und durch die Sicherung ersetzt. Alles, was seit der Sicherung erfasst wurde, ist danach weg – auch die Benutzerkonten gelten wieder so, wie sie in der Sicherung stehen.

Vorher:

So geht's:

  1. Stammdaten › Backup öffnen.

  2. Stammt die Sicherung aus einer anderen Installation oder von vor einer Passwortänderung: deren Verschlüsselungspasswort in das Feld eintragen und Speichern.

  3. Backup wiederherstellen klicken und die Rückfrage „Möchten Sie das Backup wirklich wiederherstellen?“ bestätigen.

  4. Im Fenster Backup hochladen die Sicherungsdatei wählen (Endung .zip oder .enc).

  5. Warten, bis „Backup wurde erfolgreich wiederhergestellt.“ erscheint. Das Browserfenster bis dahin offen lassen. Stammt die Sicherung aus dem anderen Produkt (TCMSOFT bzw. Salvia Software), erscheint vorher zusätzlich „Backup eines anderen Produkts“ mit „Das Backup stammt aus … - die Praxis läuft jetzt so. Bitte alle geöffneten Fenster neu laden (F5).“, siehe „Nach der Wiederherstellung“. Trägt die Sicherung eine andere Edition, erscheint „Edition bleibt …“ mit „Das Backup stammt aus einer Installation mit …. Die Edition gehört zur Installation und bleibt …; eine andere stellt der TCMSOFT-Support ein.“

  6. TCMSOFT neu starten:

    docker restart tcmsoft
    
  7. Neu anmelden, mit einem Konto aus der Sicherung.

Woran Sie den Erfolg erkennen: Nach der Anmeldung sind die Patienten und Einstellungen aus der Sicherung da. Stammt die Sicherung von einer älteren TCMSOFT-Version, passt TCMSOFT die Datenbank beim ersten Start an. Das kann einige Minuten dauern; im Protokoll (docker logs tcmsoft) steht dann „TCMSOFT startet noch (… s) …“.

Wenn nicht:

Nach der Wiederherstellung:

Startet TCMSOFT gar nicht mehr, lässt sich die Sicherung nicht über die Backup-Seite zurückspielen. Dann im Datenordner nichts löschen und den TCMSOFT-Support einschalten. Eine Sicherung lässt sich auch auf einer neu eingerichteten Installation wiederherstellen, wie beim Umzug beschrieben.

Meldung „Die Anmeldung an der Datenbank schlägt fehl …“ im Protokoll von TCMSOFT: keys/mongo-passwort passt nicht zur Datenbank, z. B. weil keys/ ersetzt wurde. Die Datei aus der Sicherung des Datenordners zurückholen und docker restart tcmsoft. Den Inhalt der Datei nie ausgeben oder weitergeben.

Umzug auf neue Hardware

Grundsatz: Die Datenbank kommt über eine Sicherung auf den neuen Server – nicht durch Kopieren von Datenbankdateien. So beschreibt es die Anleitung von TCMSOFT für den Umzug einer bestehenden Praxis in den Container (Sicherung herunterladen, neu einrichten, wiederherstellen); der Weg hängt nicht vom Dateisystem der Geräte ab. Die Schritte rund um eine alte Docker-Installation (anhalten, Einstellungen und eigene Dateien übernehmen) sind daraus abgeleitet und nicht eigens getestet – vor dem ersten Umzug dieser Art beim TCMSOFT-Support nachfragen.

Ein Wechsel vom bisherigen TCMSOFT (dem Altsystem) ist kein Umzug, sondern eine Datenübernahme, siehe Datenübernahme aus dem bisherigen TCMSOFT.

Vorbereitung

Schritte

  1. Alte Installation: Stammdaten › Backup, im Feld Verschlüsselungspasswort das Auge-Symbol klicken und das Passwort notieren. Dann Download Backup. Die Datei endet auf .zip.enc.

  2. Alte Installation anhalten, damit dort nichts mehr erfasst wird und sie keine automatischen Sicherungen mehr in dasselbe Ziel schreibt. Auf dem alten Server:

    docker stop tcmsoft-updater
    
    docker stop tcmsoft
    

    Beide bleiben auch nach einem Neustart des Servers gestoppt.

  3. Neuen Server einrichten wie unter TCMSOFT einrichten beschrieben. Eigene Einstellungen aus der alten tcmsoft.env in die neue übernehmen. Danach den Container neu anlegen lassen (docker rm -f tcmsoft, siehe Updates von TCMSOFT). Server__SichereCookies=true erst, wenn HTTPS auf dem neuen Server läuft.

  4. TCMSOFT aufrufen und das Erstkonto anlegen (siehe Ersteinrichtung der Praxis). Dieses Konto ist nur für die Wiederherstellung da; danach gelten die Konten der alten Installation.

  5. Wiederherstellen: Stammdaten › Backup, das notierte Passwort in Verschlüsselungspasswort eintragen, Speichern, dann Backup wiederherstellen und die Datei hochladen (siehe Wiederherstellen).

  6. TCMSOFT neu starten und mit einem Konto der alten Installation anmelden:

    docker restart tcmsoft
    
  7. Edition einstellen: Die Edition gehört zur Installation und kommt nicht mit der Sicherung; die neue steht auf TCMSOFTsingle. Der Support stellt im Servermanagement unter Edition die bisherige ein.

  8. Eigene Treiber und Schriften wie bei der Einrichtung in treiber/ bzw. schriften/ des neuen Datenordners legen und docker restart tcmsoft.

  9. Drucker neu einrichten: Stammdaten › Drucker › Drucker hinzufügen, Reiter Erkannte Drucker.

Woran Sie den Erfolg erkennen: Die Anmeldung mit einem bisherigen Konto klappt, Patienten und Einstellungen sind da, das Produkt stimmt (es kommt mit der Sicherung), und nach Schritt 7 auch die Edition. Ist ein Sicherungsziel eingerichtet, meldet die Glocke spätestens am nächsten Tag die erste automatische Sicherung des neuen Servers.

Nacharbeiten an den Arbeitsplätzen

Hat der neue Server eine andere Adresse oder einen anderen Port:

Den alten Server stilllegen

Den alten Server erst abbauen, wenn der neue läuft und die erste automatische Sicherung erfolgreich war. Bis dahin bleiben beide Container dort gestoppt (Schritt 2). Startet die alte Installation versehentlich wieder, schreibt sie mit denselben Zugangsdaten in dasselbe SFTP-Verzeichnis bzw. denselben S3-Pfad – und die beiden Installationen löschen sich gegenseitig die Sicherungen.

Klappt der Umzug nicht und soll die Praxis vorerst auf dem alten Server weiterarbeiten, dort beide Container wieder starten (den gestoppten Container tcmsoft startet der Update-Dienst nicht von selbst) und die neue Installation anhalten:

docker start tcmsoft
docker start tcmsoft-updater

Vom Mikroserver ohne Docker in den Container (dasselbe Gerät)

Läuft auf einem Mikroserver noch die Installation ohne Docker (Programm unter /var/www/tcmsoft, systemd-Dienste):

  1. In der alten Installation das Verschlüsselungspasswort notieren und Download Backup (wie Schritt 1 oben).

  2. Die alten Dienste anhalten. Sie belegen sonst dieselben Ports wie TCMSOFT im Container:

    systemctl disable --now tcmsoft printagent mongod
    
  3. TCMSOFT im Container einrichten, wie unter TCMSOFT einrichten für den Mikroserver beschrieben (Caddy bleibt Webserver).

  4. Weiter mit den Schritten 4 bis 8 oben.

Nicht dokumentiert – beim TCMSOFT-Support abstimmen

Für diese Fälle gibt es keine geprüfte Anleitung:

Siehe auch