TCMSOFT – Inhalt

Netzwerk und HTTPS

Diese Seite beschreibt, wie TCMSOFT im Praxisnetz erreichbar ist: welche Ports der Server belegt, warum TCMSOFT im Host-Netz läuft, wie die Druckersuche funktioniert, was eine Firewall durchlassen muss und wie Sie HTTPS einrichten. Sie setzt voraus, dass TCMSOFT nach TCMSOFT einrichten läuft.

Kurz: TCMSOFT selbst spricht nur HTTP, auf der NAS über Port 8085. HTTPS übernimmt ein Reverse-Proxy davor: der Reverse-Proxy der NAS bzw. Caddy auf dem Mikroserver. HTTPS ist Pflicht für Agent suchen (Kopplung der Print Agents über den Browser) und empfohlen, bevor an Arbeitsplätzen Print Agents gekoppelt werden. Die Kopplung per Code geht auch über http://.

Wer verbindet sich wohin

Verbindung Richtung Adresse und Port
Browser an den Arbeitsplätzen → TCMSOFT aus dem Praxisnetz zum Server HTTPS-Adresse des Reverse-Proxys; ohne HTTPS http://<Server-Adresse>:8085
Prismamed Agent → TCMSOFT vom Arbeitsplatz ausgehend die beim Koppeln eingetragene Server-Adresse, meist dieselbe wie im Browser; der Agent hat keinen eingehenden Port
Print Agent am Arbeitsplatz → TCMSOFT vom Arbeitsplatz ausgehend die Adresse, mit der gekoppelt wurde, mit dem Pfad /prismamed-print-hub; bei der Kopplung per Code einmalig /prismamed-print-kopplung
Browser → Print Agent („Agent suchen“) nur innerhalb des Arbeitsplatzes http://127.0.0.1:9632
Handys (Companion-App) → TCMSOFT aus dem Praxis-WLAN die Adresse aus Adresse für Handys
DICOM-Geräte → TCMSOFT aus dem Praxisnetz zum Server <Server-Adresse>:11112
TCMSOFT → Netzwerkdrucker vom Server ausgehend IPP (z. B. ipp://192.168.1.50/ipp/print) oder Druckport 9100
TCMSOFT und Update-Dienst → Internet vom Server ausgehend HTTPS, siehe „Am Server: ausgehend“

Prismamed Agents (/api/agent), Handys (/api/companion) und Print Agents (Hub) nutzen denselben Web-Port wie der Browser. Einen eigenen Port brauchen sie am Server nicht.

Host-Netz

Wozu: Netzwerkdrucker melden sich per Bonjour (mDNS-Multicast) im Praxisnetz. Diese Meldungen erreichen einen Container nur im Host-Netz. Im Bridge-Netz von Docker bliebe die Druckersuche leer. Der Update-Dienst legt den Container tcmsoft deshalb immer mit --network host an. Daran müssen und können Sie nichts einstellen.

Folge: Der Container teilt sich alle Ports mit dem Gerät. Deshalb gilt:

Der Update-Dienst tcmsoft-updater selbst läuft im normalen Bridge-Netz von Docker. Er braucht nur ausgehend HTTPS.

Prüfen:

docker inspect -f '{{.HostConfig.NetworkMode}}' tcmsoft

Erwartet wird host.

Ports am Server

Port Dienst Erreichbar Einstellen
8085/tcp TCMSOFT (Browser, Agenten, Handys), nur HTTP alle Netzwerkschnittstellen ASPNETCORE_URLS in tcmsoft.env
HTTPS-Port des Proxys Reverse-Proxy der NAS bzw. Caddy Praxisnetz in der NAS bzw. in Caddy
5000/tcp TCMSOFT auf dem Mikroserver nur 127.0.0.1, davor Caddy ASPNETCORE_URLS=http://127.0.0.1:5000
11112/tcp DICOM-Empfänger (ab TCMSOFTpro) Praxisnetz in TCMSOFT unter Stammdaten › DICOM, Feld Port
27017/tcp MongoDB, nur mit Anmeldung nur 127.0.0.1 Mongo__Port in tcmsoft.env
9632/tcp Print Agent im Container nur 127.0.0.1 fest

Wenn ein Port belegt ist

Vor dem Start prüft TCMSOFT bis zu 30 Sekunden lang, ob seine Ports frei werden. Sonst steht im Protokoll (docker logs tcmsoft, Zeilen mit [tcmsoft]) eine dieser Meldungen:

Meldung (Anfang) Was tun
„Port 8085 ist auf diesem Gerät schon belegt, TCMSOFT kann dort nicht erreichbar sein. …“ einen freien Web-Port eintragen (nächster Abschnitt); auf dem Mikroserver stattdessen den alten Dienst beenden: systemctl disable --now tcmsoft
„Port 27017 ist auf diesem Gerät schon belegt - vermutlich läuft dort eine andere MongoDB …“ die andere Datenbank beenden (Mikroserver: systemctl disable --now mongod) oder in tcmsoft.env die Zeile Mongo__Port=27018 eintragen, dann docker rm -f tcmsoft
„Warnung: Port 9632 ist auf diesem Gerät schon belegt - läuft dort noch der PrintAgent einer früheren Installation? …“ den alten Print Agent beenden (Mikroserver: systemctl disable --now printagent), dann docker restart tcmsoft. Bis dahin druckt TCMSOFT nicht über den Container.

Bei den ersten beiden Meldungen startet TCMSOFT nicht. Bei der dritten startet es, druckt aber nicht über den Container.

Web-Port ändern

  1. In <Datenordner>/tcmsoft.env die Zeile ASPNETCORE_URLS=http://+:8085 ändern, z. B. auf http://+:8086.

  2. Den Container entfernen. Der Update-Dienst legt ihn kurz darauf (spätestens nach 10 Minuten) mit derselben Version und der neuen Einstellung wieder an:

    docker rm -f tcmsoft
    
  3. Das Ziel des Reverse-Proxys auf den neuen Port stellen.

  4. Die Arbeitsplätze nachziehen, siehe „Eine feste Adresse für den Server“.

Erfolg: In TCMSOFT meldet die Glocke „TCMSOFT … neu angelegt“, und TCMSOFT öffnet sich unter der neuen Adresse. Wenn nicht: TCMSOFT ist unter der neuen Adresse nicht erreichbar, und docker logs tcmsoft-updater meldet „TCMSOFT startet nicht: TCMSOFT … wurde neu angelegt, startet aber nicht. …“. Dann docker logs tcmsoft lesen, die Zeile in tcmsoft.env korrigieren und erneut docker rm -f tcmsoft ausführen. Läuft noch ein Update-Dienst vor 2026.10.7.1, vorher die Hinweise unter Datenordner und tcmsoft.env lesen.

Druckersuche (Bonjour und Avahi)

Wozu: Unter Stammdaten › Drucker › Drucker hinzufügen zeigt der Reiter Erkannte Drucker die Netzwerkdrucker, die sich per Bonjour/AirPrint melden. So muss niemand die Adresse eines Druckers kennen.

So funktioniert es:

Voraussetzungen:

Prüfen:

docker exec tcmsoft avahi-browse -rt _ipp._tcp

zeigt die Bonjour-Meldungen der Drucker im Netz.

docker exec tcmsoft lpinfo -v

zeigt die Drucker, die das Drucksystem gefunden hat.

Wenn die Suche nichts findet:

Treiber, eigene PPD-Dateien und die Print Agents der Arbeitsplätze stehen unter Print Agent. Die Bedienung für die Praxis beschreibt das Benutzerhandbuch › Stammdaten: Praxis › Drucker.

Firewall

Am Server: eingehend

Aus dem Praxisnetz müssen erreichbar sein:

MongoDB (27017), der Print Agent im Container (9632) und CUPS lauschen nur intern. Für sie keine Freigabe einrichten.

Die Druckersuche empfängt die Bonjour-Meldungen der Drucker (mDNS). Ob eine Firewall auf dem Server dafür etwas durchlassen muss, ist nicht getestet. Findet Erkannte Drucker bei eingeschalteter Firewall nichts, vor dem Einsatz beim TCMSOFT-Support nachfragen; die Drucker lassen sich in jedem Fall mit ihrer Adresse anlegen.

Läuft auf dem Server die Firewall ufw, geben Sie den DICOM-Port so frei, wie es die Mikroserver-Provisionierung tut. Sie gibt den Port nur frei, wenn ufw aktiv ist:

ufw allow 11112/tcp comment 'TCMSOFT DICOM'

Für eine andere Firewall der NAS gilt dasselbe sinngemäß. Wie das in der Oberfläche der jeweiligen NAS geht, ist hier nicht beschrieben.

Am Server: ausgehend

TCMSOFT und der Update-Dienst rufen diese Adressen auf. Die Adressen mit https:// laufen über HTTPS (Port 443) ins Internet; dafür braucht der Server Internet und eine funktionierende Namensauflösung (DNS). E-Mail, Datensicherung und Datenübernahme nutzen die Server und Ports, die in TCMSOFT eingetragen sind.

Ziel Wer Wofür
https://downloads.tcmsoft.de/docker/ Update-Dienst Einrichtung von TCMSOFT und nächtliche Updates (TCMSOFT und Update-Dienst)
https://downloads.tcmsoft.de/agent/ und …/printagent/ TCMSOFT Download-Links unter Stammdaten › Agenten › Agent herunterladen… und Stammdaten › Drucker › Print Agent herunterladen
https://data.tcmsoft.cloud TCMSOFT TCM-Bibliothek: beim ersten Aufruf von TCMSOFT, danach täglich um 4 Uhr
https://pharmindex.tcmsoft.cloud TCMSOFT Arzneimittel-Suchindex, alle 12 Stunden
https://verwaltung.tcmsoft.cloud TCMSOFT Vorlagen für die Drucklayouts, Laborparameter-Katalog
https://webservice.padline.de TCMSOFT PAD-Übergabe: lädt das Zertifikat der Abrechnungsstelle
https://<Domainname>.arzttermin-buchen.de TCMSOFT Online-Terminbuchung, nur wenn eingerichtet; beim neuen Portal muss ein Proxy Anfragen bis 80 Sekunden Dauer zulassen
Adresse aus der Karte Billsphere (Stammdaten › Betriebsstätte) TCMSOFT Abgleich der Patienten alle 15 Minuten, nur wenn eingerichtet
SMTP-Server der E-Mail-Konten TCMSOFT E-Mail-Versand, Server und Port laut Stammdaten › E-Mail-Konten
SFTP- bzw. S3-Ziel TCMSOFT automatische Datensicherung, nur wenn eingerichtet
PostgreSQL des bisherigen TCMSOFT (Port 5432) TCMSOFT nur während einer Datenübernahme

Ankommende Verbindungen aus dem Internet braucht keiner dieser Dienste. Auch das Portal der Online-Terminbuchung ruft TCMSOFT nicht auf; TCMSOFT holt die Buchungen selbst ab.

Prüfen (per SSH auf dem Server; auf ARM-Geräten arm64 statt x64):

curl -fsS -o /dev/null -w '%{http_code}\n' https://downloads.tcmsoft.de/docker/tcmsoft-updater-x64.json

Erwartet wird 200.

Woran man eine Sperre bemerkt:

Ausgehender HTTP-Proxy: Ein Server, der nur über einen HTTP-Proxy ins Internet kommt, ist nicht vorgesehen und nicht getestet. Der Update-Dienst gibt bei seinem Selbst-Update nur TCMSOFT_DATEN, UPDATE_UHRZEIT, MANIFEST_BASIS und TZ an seinen Nachfolger weiter; eine von Hand gesetzte Proxy-Variable ginge dabei verloren. Vor dem Einsatz beim TCMSOFT-Support nachfragen.

An den Arbeitsplätzen

Verbindung Richtung Hinweis
Prismamed Agent → TCMSOFT ausgehend die beim Koppeln eingetragene Server-Adresse; seine Abfrage nach Aufträgen hält der Server bis zu 25 Sekunden offen, dazu meldet sich der Agent alle 30 Sekunden
Print Agent → TCMSOFT ausgehend die Adresse, über die gekoppelt wurde
Beide Agenten → https://downloads.tcmsoft.de ausgehend, Port 443 Selbst-Update; unter Windows nutzt es die Proxy-Einstellungen von Windows
Browser → Print Agent nur am Rechner selbst http://127.0.0.1:9632, nur beim Koppeln über Agent suchen

Eine feste Adresse für den Server

Die Adresse des Servers steht an vielen Stellen. Geben Sie dem Server deshalb eine feste Adresse und legen Sie sie fest, bevor Arbeitsplätze und Geräte eingerichtet werden.

Wo die Adresse steht Was bei einer Änderung zu tun ist
Lesezeichen der Browser neue Adresse aufrufen
Print Agents an den Arbeitsplätzen mit einem neuen Code aus Stammdaten › Drucker › Arbeitsplatz koppeln und der neuen Adresse neu koppeln (Koppeln … im Symbol des Agenten ersetzt die alte Kopplung); oder die alte Kopplung entfernen (Kopplung „…“ entfernen…) und erneut Agent suchen
Prismamed Agents mit einem neuen Kopplungscode und der neuen Server-Adresse neu koppeln, siehe Prismamed Agent
Handys unter Stammdaten › Mobilgeräte entfernen und mit der neuen Adresse für Handys neu koppeln
DICOM-Geräte neue Ziel-Adresse mit dem DICOM-Port aus Stammdaten › DICOM (Standard 11112) am Gerät eintragen
Reverse-Proxy und Zertifikat Ziel bzw. Namen anpassen

Dasselbe gilt, wenn sich der Port ändert.

HTTPS einrichten

Warum HTTPS nötig ist

Pflicht für „Agent suchen“. Die Kopplung per Code (Stammdaten › Drucker › Arbeitsplatz koppeln) geht auch ohne HTTPS. Beim Koppeln über Stammdaten › Drucker › Agent suchen fragt die TCMSOFT-Seite im Browser den Print Agent desselben Rechners unter http://127.0.0.1:9632 ab und übergibt ihm die Kopplung. Chrome und Edge erlauben einer Seite diesen Zugriff auf Geräte im lokalen Netzwerk nur, wenn die Seite selbst über HTTPS geöffnet ist. Beim ersten Mal fragt der Browser außerdem nach dem Zugriff auf Geräte im lokalen Netzwerk; dort Zulassen wählen. Ausnahme: Auf dem Rechner, auf dem TCMSOFT selbst läuft, genügt http://localhost.

Danach verbindet sich der Print Agent von sich aus mit TCMSOFT, und zwar unter der Adresse, unter der TCMSOFT beim Koppeln im Browser geöffnet war. Deshalb muss der Rechner dem Zertifikat dieser Adresse vertrauen.

„Agent suchen“ in Safari ist nicht geprüft. Empfohlen sind Chrome oder Edge.

Ohne Zwang, aber empfohlen für alles andere: Mit HTTPS laufen Anmeldung und Patientendaten verschlüsselt durchs Praxisnetz. Der Prismamed Agent und die Handys funktionieren auch mit einer http://-Adresse. Der Prismamed Agent nimmt beide an; nutzt er https://, muss auch sein Rechner dem Zertifikat vertrauen.

So ist es aufgebaut

Synology

  1. Systemsteuerung › Anmeldeportal › Erweitert › Reverse Proxy öffnen und einen Eintrag anlegen.
  2. Als Quelle HTTPS mit dem Namen wählen, unter dem die Arbeitsplätze TCMSOFT öffnen sollen. Als Ziel http://localhost:8085 eintragen.
  3. Im selben Eintrag unter Benutzerdefinierter Header › Erstellen › WebSocket die WebSocket-Kopfzeilen eintragen.
  4. Dem Namen ein Zertifikat zuordnen (siehe „Das Zertifikat“).
  5. Danach Server__SichereCookies einschalten (siehe unten).

Welcher Quell-Port sich neben den DSM-Ports 5000/5001 bewährt hat, ist nicht dokumentiert. Ebenso nicht geprüft ist, ob der Reverse-Proxy der Synology X-Forwarded-Proto und X-Forwarded-For von sich aus mitschickt. Im Zweifel beim TCMSOFT-Support nachfragen.

Mikroserver mit Caddy

Auf dem Mikroserver bleibt Caddy der Webserver. Bei der Einrichtung schreibt der Befehl aus TCMSOFT einrichten diese tcmsoft.env:

ASPNETCORE_URLS=http://127.0.0.1:5000
Server__SichereCookies=true

Für Salvia Software steht zusätzlich Produkt=Salvia darin. TCMSOFT lauscht dann nur auf 127.0.0.1:5000. Von außen geht es nur über Caddy, dessen Konfiguration (reverse_proxy :5000) unverändert bleibt.

Die Mikroserver-Provisionierung hat bei der früheren Installation diese /etc/caddy/Caddyfile geschrieben:

:80 {
reverse_proxy :5000
tls internal
}

Achtung, nicht geklärt: Ob die Mikroserver damit HTTPS mit einem Zertifikat ausliefern, dem die Arbeitsplätze vertrauen, ist nicht geprüft. Öffnen Sie TCMSOFT nach der Einrichtung an einem Arbeitsplatz. Klappt das nur über http://, hält die Anmeldung wegen Server__SichereCookies=true nicht. Dann vor dem Einsatz beim TCMSOFT-Support nachfragen. Als Notlösung die Zeile in tcmsoft.env mit # auskommentieren und docker rm -f tcmsoft ausführen.

Andere NAS

Für UGREEN und andere Geräte ist der Weg zum Reverse-Proxy nicht beschrieben. Die Anforderungen sind dieselben: HTTPS annehmen, an http://localhost:8085 weiterreichen, WebSockets durchreichen, X-Forwarded-Proto und X-Forwarded-For mitschicken, ein vertrauenswürdiges Zertifikat für den Namen.

Das Zertifikat

Zwei Wege:

Server__SichereCookies einschalten

Wozu: Mit Server__SichereCookies=true setzt TCMSOFT die Anmelde-Cookies nur noch für HTTPS. Im Image ist die Einstellung aus, damit die Anmeldung im Praxisnetz auch ohne Proxy über http:// funktioniert.

Erst einschalten, wenn TCMSOFT über HTTPS läuft. Browser verwerfen solche Cookies auf jeder http://-Adresse außer localhost. Die Anmeldung „gelingt“ dann, hält aber nicht: Man landet sofort wieder auf der Anmeldeseite.

  1. Prüfen, ob die Zeile in tcmsoft.env steht. Der Update-Dienst legt sie auskommentiert an (# Server__SichereCookies=true):

    grep SichereCookies <Datenordner>/tcmsoft.env
    
  2. Die Zeile einschalten:

    sed -i 's/^# *Server__SichereCookies=true/Server__SichereCookies=true/' <Datenordner>/tcmsoft.env
    

    Gab Schritt 1 nichts aus, die Zeile stattdessen anhängen:

    echo 'Server__SichereCookies=true' >> <Datenordner>/tcmsoft.env
    
  3. Den Container entfernen; der Update-Dienst legt ihn mit derselben Version und der neuen Einstellung wieder an (spätestens nach 10 Minuten):

    docker rm -f tcmsoft
    

    Läuft noch ein Update-Dienst vor 2026.10.7.1, vorher die Hinweise unter Datenordner und tcmsoft.env lesen.

  4. An allen Arbeitsplätzen TCMSOFT nur noch über die HTTPS-Adresse öffnen und Lesezeichen umstellen.

docker restart tcmsoft genügt nicht: Docker liest tcmsoft.env nur beim Anlegen des Containers.

Erfolg prüfen

  1. grep SichereCookies <Datenordner>/tcmsoft.env zeigt Server__SichereCookies=true ohne #.
  2. Die Glocke in TCMSOFT meldet „TCMSOFT … neu angelegt“.
  3. An einem Arbeitsplatz öffnet sich die HTTPS-Adresse ohne Zertifikatswarnung, und die Anmeldung hält.
  4. An einem Arbeitsplatz mit Print Agent meldet Stammdaten › Drucker › Agent suchen „Print Agent verbunden“.

Wenn etwas nicht klappt

Was Sie sehen Ursache Was tun
Nach dem Anmelden sofort wieder die Anmeldeseite Server__SichereCookies=true, aber TCMSOFT wurde über http:// geöffnet die HTTPS-Adresse verwenden; läuft HTTPS noch nicht, die Zeile wieder auskommentieren und docker rm -f tcmsoft
Zertifikatswarnung im Browser das Zertifikat gilt nicht für diese Adresse oder der Rechner vertraut ihm nicht Zertifikat bzw. Namen prüfen, Zertifikat am Arbeitsplatz importieren
„Kein Print Agent auf diesem Rechner“ bzw. „Kein Print Agent gefunden“ mit dem Satz „Chrome und Edge lassen die Suche nach dem Print Agent nur zu, wenn diese Seite über HTTPS aufgerufen wird – bitte die HTTPS-Adresse verwenden.“ TCMSOFT ist über http:// geöffnet TCMSOFT über die HTTPS-Adresse öffnen, erneut Agent suchen – oder per Code koppeln (Arbeitsplatz koppeln)
„Kein Print Agent auf diesem Rechner“ bzw. „Kein Print Agent gefunden“ trotz HTTPS Print Agent läuft nicht oder der Browser hat den Zugriff auf Geräte im lokalen Netzwerk nicht erlaubt Print Agent starten; im Browser über das Symbol links neben der Adresse › Website-Einstellungen den Zugriff freigeben
„Print Agent nicht verbunden“, das Symbol des Agenten nennt „SSL“ oder „Zertifikat“ der Rechner vertraut dem Zertifikat nicht Zertifikat am Arbeitsplatz vertrauenswürdig machen
„Print Agent nicht verbunden“ nach einem Wechsel von Adresse oder Port der Agent ist noch mit der alten Adresse gekoppelt mit einem neuen Code neu koppeln (Koppeln … im Symbol des Agenten) oder Kopplung „…“ entfernen… und erneut Agent suchen
TCMSOFT reagiert über HTTPS spürbar langsamer als über http://<Server-Adresse>:8085 der Proxy reicht keine WebSockets durch WebSocket-Kopfzeilen im Reverse-Proxy eintragen

Weitere Meldungen der Print Agents stehen unter Print Agent und Meldungen und ihre Bedeutung.

Noch nicht entschieden

Nach dem Einrichten von HTTPS bleibt TCMSOFT zusätzlich unverschlüsselt unter http://<Server-Adresse>:8085 im Praxisnetz erreichbar, und TCMSOFT übernimmt X-Forwarded-* von jedem Absender. Ob man den Web-Port dann auf die NAS selbst begrenzen soll (ASPNETCORE_URLS=http://127.0.0.1:8085), ist nicht entschieden und nicht getestet. Prismamed Agents und Handys mit einer http://-Adresse würden TCMSOFT dann nicht mehr erreichen. Vor einer solchen Änderung beim TCMSOFT-Support nachfragen.