TCMSOFT – Inhalt

Auf der NAS einrichten (Synology, UGREEN, QNAP)

Diese Seite richtet TCMSOFT oder Salvia Software auf einer NAS ein, nur über die Weboberfläche der NAS. SSH und Befehle sind nicht nötig. Sie legen im Docker-Programm der NAS ein Projekt an und fügen einen fertigen Text ein. Das Projekt lädt den Update-Dienst von downloads.tcmsoft.de, prüft ihn und startet ihn. Der Update-Dienst richtet danach TCMSOFT selbst ein und hält es aktuell, genau wie bei der Einrichtung per SSH (TCMSOFT einrichten).

Hinweis: Die Menüwege folgen der Hilfe der Hersteller (Stand November 2026). Der Ablauf selbst ist mit Docker Compose geprüft, aber noch nicht auf einer echten NAS. Weicht ein Menü ab, sehen Sie in der Hilfe der NAS nach oder fragen beim TCMSOFT-Support.

Die Schritte im Überblick

  1. Prozessor prüfen und das Docker-Programm der NAS installieren.
  2. Den Datenordner anlegen.
  3. Das Projekt tcmsoft-einrichtung anlegen und starten. Für Salvia Software ändert sich dabei eine Zeile.
  4. Den ersten Start verfolgen und TCMSOFT im Browser öffnen.

Danach geht es weiter mit der Ersteinrichtung der Praxis.

Schritt 1: Prozessor prüfen, Docker-Programm installieren

Wozu: TCMSOFT läuft in Docker-Containern. Die eingebaute Datenbank braucht einen Intel- oder AMD-Prozessor mit AVX. Viele kleine NAS-Modelle mit Celeron- oder Atom-Prozessor haben das nicht.

  1. Den Prozessor nachsehen: Synology Systemsteuerung › Infocenter, bei UGREEN und QNAP in den Systeminformationen der NAS.

  2. Mit der Tabelle vergleichen:

    NAS Geeignet (mit AVX) Nicht geeignet
    Synology AMD Ryzen, z. B. DS723+, DS923+, DS1522+, DS725+, DS925+, DS1525+, DS1621+, DS1821+ Intel Celeron J4125, J4025, J3455 (z. B. DS220+, DS224+, DS225+, DS420+, DS423+, DS425+, DS720+, DS920+, DS918+), Intel Atom (z. B. DS1618+, DS1819+), ARM (z. B. DS124, DS223, DS423)
    UGREEN alle DXP-Modelle (Intel N100, Pentium Gold, Core, AMD Ryzen) DH2300 (ohne Docker), DH4300 Plus (ARM)
    QNAP AMD Ryzen und Intel Core, z. B. TS-473A Intel Celeron N5095, N5105, N4505, J4125, J6412 (z. B. TS-464, TS-262, TS-453D, TS-453E), ARM

    Steht das Modell nicht in der Tabelle, gilt die Regel unter Voraussetzungen. Ist der Prozessor ungeeignet, bricht die Einrichtung in Schritt 3 mit „Der Prozessor dieser NAS kann kein AVX“ ab.

  3. Das Docker-Programm installieren:

    NAS Programm
    Synology (DSM 7.2 und neuer) Paket-Zentrum › „Container Manager“ › Installieren
    UGREEN (UGOS Pro) App-Center › „Docker“ › Installieren
    QNAP (QTS 5, QuTS hero) App Center › „Container Station“ › Installieren

Erfolg: Das Docker-Programm erscheint im Hauptmenü der NAS.

Schritt 2: Datenordner anlegen

Wozu: Im Datenordner liegt alles, was die Praxis ausmacht: Datenbank, Schlüssel, Einstellungen, Druckerkonfiguration (Datenordner und tcmsoft.env).

NAS So geht's Datenordner
Synology File Station › im gemeinsamen Ordner docker › Erstellen › Ordner erstellen: tcmsoft, ebenso tcmsoft-einrichtung für das Projekt /volume1/docker/tcmsoft
UGREEN App Dateien › im Ordner docker einen Ordner tcmsoft anlegen. Den Projektordner legt die Docker-App selbst an. /volume1/docker/tcmsoft
QNAP File Station › im freigegebenen Ordner Container einen Ordner tcmsoft anlegen /share/Container/tcmsoft

Liegt der Ordner auf einem anderen Volume, zeigen seine Eigenschaften den vollständigen Pfad (z. B. /volume2/docker/tcmsoft). Dann gilt in Schritt 3 dieser Pfad. Kleinschreibung beachten: /volume1, nicht /Volume1.

Für eine neue Praxis ist der Datenordner leer. Liegt darin schon eine Datenbank (Ordner mongodb/), startet TCMSOFT mit dieser Datenbank.

Schritt 3: Projekt anlegen

Wozu: Das Projekt tcmsoft-einrichtung läuft einmal. Es lädt den Update-Dienst, vergleicht die Prüfsumme mit der Angabe auf dem Download-Server, startet ihn als Container tcmsoft-updater und beendet sich.

  1. Das Projekt anlegen:

    NAS So geht's
    Synology Container Manager › Projekt › Erstellen. Projektname: tcmsoft-einrichtung. Pfad: den Ordner docker/tcmsoft-einrichtung aus Schritt 2. Quelle: „docker-compose.yml erstellen“ und den Text unten einfügen. Das Web-Portal überspringen, Fertig; das Projekt soll gleich starten.
    UGREEN Docker › Projekt › Erstellen. Projektname: tcmsoft-einrichtung. Den Text unten als Compose-Konfiguration einfügen, Bereitstellen.
    QNAP Container Station › Anwendungen › Erstellen. Anwendungsname: tcmsoft-einrichtung. Den Text unten einfügen, Validieren, Erstellen.
  2. Diesen Text unverändert einfügen. Die Einrückung mit Leerzeichen gehört dazu.

    # TCMSOFT / Salvia Software auf der NAS einrichten - nur über die Weboberfläche der NAS, ohne SSH.
    # Beschrieben im Admin-Handbuch, Seite „Auf der NAS einrichten“ (dort fertig für Synology, UGREEN und QNAP).
    #
    # Der Dienst „einrichtung“ läuft einmal: Er lädt den TCMSOFT-Update-Dienst von downloads.tcmsoft.de, vergleicht die
    # Prüfsumme mit dem Manifest und startet ihn als Container tcmsoft-updater. Der Update-Dienst richtet danach TCMSOFT
    # selbst ein und hält es aktuell. Ist er schon da, tut die Einrichtung nichts - erneut starten schadet nicht.
    #
    # Anpassen nur die Zeilen mit „<<<“: der Datenordner (an allen drei Stellen derselbe) und bei Salvia Software das Produkt.
    services:
      einrichtung:
        image: docker:29-cli
        container_name: tcmsoft-einrichtung
        restart: "no"
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
          - /volume1/docker/tcmsoft:/volume1/docker/tcmsoft   # <<< Datenordner, links und rechts gleich
        environment:
          TCMSOFT_DATEN: /volume1/docker/tcmsoft              # <<< derselbe Datenordner
          TCMSOFT_PRODUKT: TCMSOFT                            # <<< Salvia Software: Salvia
          UPDATE_UHRZEIT: "03:00"                             # nächtliche Prüfung auf Updates
        entrypoint: ["/bin/sh", "-c"]
        command:
          - |
            set -e
            D="$${TCMSOFT_DATEN:?}"; P="$${TCMSOFT_PRODUKT:-TCMSOFT}"; Q=https://downloads.tcmsoft.de/docker
            echo "== TCMSOFT einrichten: $$P, Datenordner $$D"
            case "$$P" in TCMSOFT|Salvia) ;; *) echo "!! Bei TCMSOFT_PRODUKT steht $$P - erlaubt sind TCMSOFT und Salvia."; exit 1 ;; esac
            [ "$$(uname -m)" = x86_64 ] || { echo "!! TCMSOFT braucht eine NAS mit Intel- oder AMD-Prozessor."; exit 1; }
            grep -qw avx /proc/cpuinfo || { echo "!! Der Prozessor dieser NAS kann kein AVX. Die Datenbank von TCMSOFT startet darauf nicht."; exit 1; }
            [ -d "$$D" ] || { echo "!! Der Datenordner $$D fehlt. Bitte in der Dateiverwaltung der NAS anlegen."; exit 1; }
            if docker container inspect tcmsoft-updater >/dev/null 2>&1; then
              echo "== Der Update-Dienst ist schon eingerichtet - nichts zu tun."; exit 0
            fi
            if [ "$$P" = Salvia ] && [ ! -f "$$D/tcmsoft.env" ]; then
              printf '%s\n' '# Einstellungen des TCMSOFT-Containers - angelegt bei der Einrichtung auf der NAS.' \
                '# Nach einer Änderung den Container tcmsoft löschen; der Update-Dienst legt ihn mit derselben Version neu an.' \
                'ASPNETCORE_URLS=http://+:8085' '# Server__SichereCookies=true' '# GLIBC_TUNABLES=glibc.pthread.rseq=1' \
                'Produkt=Salvia' > "$$D/tcmsoft.env"
              echo "== tcmsoft.env für Salvia Software angelegt"
            fi
            echo "== Update-Dienst wird geladen ..."
            wget -qO /tmp/manifest.json "$$Q/tcmsoft-updater-x64.json" || { echo "!! downloads.tcmsoft.de ist nicht erreichbar. Internetverbindung der NAS prüfen."; exit 1; }
            F=$$(sed -n 's/.*"Datei" *: *"\([^"]*\)".*/\1/p' /tmp/manifest.json)
            H=$$(sed -n 's/.*"Sha256" *: *"\([0-9a-fA-F]*\)".*/\1/p' /tmp/manifest.json | tr A-F a-f)
            wget -qO /tmp/updater.tar "$$Q/$$F" || { echo "!! Der Update-Dienst ließ sich nicht laden. Später erneut starten."; exit 1; }
            echo "$$H  /tmp/updater.tar" | sha256sum -c -s || { echo "!! Die Prüfsumme stimmt nicht mit dem Manifest überein - abgebrochen."; exit 1; }
            docker load -i /tmp/updater.tar
            E=""; [ "$$P" = Salvia ] && E="-e TCMSOFT_PRODUKT=Salvia"
            docker run -d --name tcmsoft-updater --restart unless-stopped -v /var/run/docker.sock:/var/run/docker.sock \
              -v "$$D:$$D" -e TCMSOFT_DATEN="$$D" -e UPDATE_UHRZEIT="$${UPDATE_UHRZEIT:-03:00}" $$E tcmsoft-updater
            echo "== Fertig: Der Update-Dienst lädt jetzt TCMSOFT (gut 1 GB) und startet es. Danach: http://<NAS-Adresse>:8085"
    
  3. Anpassen, nur wo nötig:

    • Salvia Software (Heilpraktiker-Praxis): in der Zeile TCMSOFT_PRODUKT statt TCMSOFT das Wort Salvia.
    • QNAP oder ein anderer Datenordner: /volume1/docker/tcmsoft an allen drei Stellen mit <<< durch den Pfad aus Schritt 2 ersetzen, auf QNAP also /share/Container/tcmsoft.
    • Eine andere Uhrzeit für die nächtliche Prüfung: in UPDATE_UHRZEIT, z. B. "04:30".

Was die Zeilen bedeuten:

Zeile Bedeutung
image: docker:29-cli ein offizielles Docker-Werkzeug von Docker Hub. Die NAS lädt es beim Anlegen des Projekts selbst.
restart: "no" Die Einrichtung läuft nur, wenn das Projekt gestartet wird, nicht nach jedem Neustart der NAS.
/var/run/docker.sock:/var/run/docker.sock Zugriff auf Docker der NAS. Damit startet die Einrichtung den Update-Dienst, und der Update-Dienst legt TCMSOFT an und tauscht es bei Updates aus. Er lädt ausschließlich vom Hersteller signierte Images.
Datenordner, dreimal links und rechts vom Doppelpunkt und in TCMSOFT_DATEN derselbe Pfad. Docker versteht nur Pfade der NAS.
TCMSOFT_PRODUKT TCMSOFT oder Salvia. Wirkt nur auf einer neuen Installation ohne Daten (Produkt und Praxisart).
UPDATE_UHRZEIT Uhrzeit der nächtlichen Prüfung auf eine neue Version
der Block unter command: die Einrichtung selbst. $$ steht dort für ein einzelnes $; nichts ändern.

Erfolg: Das Projekt erscheint. Der Container tcmsoft-einrichtung hat sich nach etwa einer Minute beendet, und in seinem Protokoll steht zuletzt „== Fertig: Der Update-Dienst lädt jetzt TCMSOFT …“. Unter den Containern erscheint tcmsoft-updater.

Wenn nicht: Das Protokoll von tcmsoft-einrichtung öffnen (siehe Schritt 4) und mit der Tabelle vergleichen:

Im Protokoll Was tun
„!! Der Prozessor dieser NAS kann kein AVX …“ / „… braucht eine NAS mit Intel- oder AMD-Prozessor“ Die NAS ist für TCMSOFT nicht geeignet (Schritt 1).
„!! Der Datenordner … fehlt …“ Den Ordner aus Schritt 2 anlegen oder den Pfad im Projekt an allen drei Stellen korrigieren.
„!! Bei TCMSOFT_PRODUKT steht …“ Tippfehler: TCMSOFT oder Salvia eintragen.
„!! downloads.tcmsoft.de ist nicht erreichbar …“ / „… ließ sich nicht laden …“ Internetverbindung und DNS der NAS prüfen, dann das Projekt erneut starten.
„!! Die Prüfsumme stimmt nicht …“ Der Download ist beschädigt. Später erneut starten; bleibt es, den TCMSOFT-Support informieren.
Meldung des Docker-Programms zu docker.sock Die NAS verweigert den Zugriff auf Docker. Dann bleibt nur die Einrichtung per SSH (TCMSOFT einrichten).
„pull access denied“ oder „docker:29-cli“ lässt sich nicht laden Die NAS erreicht Docker Hub nicht. Internetverbindung prüfen.

Schritt 4: Ersten Start verfolgen

Wozu: Der Update-Dienst lädt jetzt TCMSOFT (gut 1 GB) und startet es. Das dauert je nach Internetverbindung einige Minuten; beim ersten Start lädt TCMSOFT außerdem die TCM-Bibliothek.

  1. Das Protokoll des Containers tcmsoft-updater öffnen:

    NAS Protokoll eines Containers
    Synology Container Manager › Container › Container wählen › Details › Protokoll
    UGREEN Docker › Container › Container anklicken › Protokoll
    QNAP Container Station › Container › Containername › Protokolle

    Wichtig sind diese Zeilen (die Versionsnummern sind Beispiele):

    TCMSOFT-Updater 2026.11.9.1 startet: Datenordner /volume1/docker/tcmsoft, Prüfung täglich um 03:00.
    …
    TCMSOFT 2026.11.9.1 eingerichtet: TCMSOFT ist eingerichtet und aktualisiert sich ab jetzt jede Nacht selbst.
    

    Auch bei Salvia Software spricht das Protokoll des Update-Dienstes von TCMSOFT; das ist so gewollt.

  2. Danach erscheint auch der Container tcmsoft. In seinem Protokoll steht zuletzt „TCMSOFT läuft“.

  3. Im Browser eines Arbeitsplatzes http://<NAS-Adresse>:8085 öffnen. Es erscheint die Ersteinrichtung („Willkommen!“), weiter mit Ersteinrichtung der Praxis.

Woran Sie Salvia Software erkennen: Die Anmeldeseite zeigt die Salvia-Bildmarke (ein Blatt) und „Salvia Software“, nach der Anmeldung steht oben in der Seitenleiste „Salvia“. Zeigt sie „TCMSOFT“, siehe „Salvia vergessen“ unten.

Wenn nicht:

Im Protokoll des Update-Dienstes Was tun
„TCMSOFT_DATEN fehlt …“, „… ist im Updater nicht eingebunden …“ oder „… unter demselben Pfad eingebunden sein …“ Den Datenordner im Projekt an allen drei Stellen gleich schreiben, dann wie unter „Einstellungen des Update-Dienstes ändern“ neu anlegen lassen.
„TCMSOFT konnte nicht eingerichtet werden: … - neuer Versuch in 10 Minuten.“ Meist erreicht die NAS downloads.tcmsoft.de nicht. Internetverbindung und DNS der NAS prüfen.

Weitere Meldungen und ihre Bedeutung: TCMSOFT einrichten.

Hinweis: Noch kein HTTPS. Bei Installationen in der Praxis läuft TCMSOFT derzeit über http://. HTTPS kommt später mit der Ersteinrichtung, denn dann muss jeder Arbeitsplatz einmal das selbst erstellte Zertifikat der Praxis laden. Bis dahin Arbeitsplätze per Code koppeln, nicht mit Agent suchen (Netzwerk und HTTPS).

Gut zu wissen

Einstellungen von TCMSOFT ändern

Wozu: Port und weitere Einstellungen von TCMSOFT stehen in tcmsoft.env im Datenordner (Datenordner und tcmsoft.env). Docker liest die Datei nur beim Anlegen des Containers. Nach einer Änderung löschen Sie deshalb den Container tcmsoft; der Update-Dienst legt ihn mit derselben Version und den neuen Einstellungen wieder an. Daten, Anmeldungen und Drucker bleiben erhalten. TCMSOFT ist dabei einige Minuten nicht erreichbar.

  1. Datei bearbeiten: Auf der Synology im Paket-Zentrum das Paket Texteditor installieren und docker/tcmsoft/tcmsoft.env in der File Station mit Rechtsklick › Öffnen mit › Texteditor öffnen. Sonst die Datei herunterladen, am Rechner mit einem Texteditor ändern und wieder hochladen.
  2. Container neu anlegen lassen: Den Container tcmsoft im Docker-Programm stoppen und löschen. Nach kurzer Zeit (spätestens nach 10 Minuten) legt der Update-Dienst tcmsoft neu an.

Erfolg: Der Container tcmsoft läuft wieder. In TCMSOFT erscheint die Nachricht „TCMSOFT … neu angelegt“.

Einstellungen des Update-Dienstes ändern

Die Uhrzeit der nächtlichen Prüfung oder einen falschen Datenordner ändern Sie im Projekt:

  1. Auf der Backup-Seite von TCMSOFT nachsehen, dass gerade kein Update läuft.
  2. Den Container tcmsoft-updater stoppen und löschen. TCMSOFT läuft dabei weiter.
  3. Im Projekt tcmsoft-einrichtung den Text bearbeiten (Synology: Projekt › tcmsoft-einrichtung › YAML-Konfigurationen, UGREEN: Projekt › ··· › Einstellungen, QNAP: die Anwendung mit dem geänderten Text neu erstellen) und das Projekt erneut starten.

Erfolg: Im Protokoll von tcmsoft-updater endet die erste Zeile mit der neuen Uhrzeit, z. B. „Prüfung täglich um 04:30.“, und die Backup-Seite zeigt sie unter Prüfung täglich um.

Salvia vergessen

Die Anmeldeseite zeigt „TCMSOFT“, obwohl Salvia Software gewünscht war. Solange in TCMSOFT weder Patienten noch Rechnungen noch Abrechnungsfälle mit Leistungen erfasst sind, lässt sich das ohne Datenverlust korrigieren (ein Anmeldekonto stört nicht):

  1. Die Container tcmsoft-updater und tcmsoft stoppen und löschen.
  2. Im Datenordner die Datei tcmsoft.env löschen.
  3. Im Projekt tcmsoft-einrichtung bei TCMSOFT_PRODUKT das Wort Salvia eintragen und das Projekt erneut starten. In seinem Protokoll steht „== tcmsoft.env für Salvia Software angelegt“.
  4. Der Update-Dienst legt TCMSOFT neu an, der Start richtet Salvia Software ein.

Ist schon etwas erfasst, bleibt die Installation TCMSOFT; Einzelheiten unter Produkt und Praxisart.