Zum Hauptinhalt springen
Hilfecenter

So ist teamspace technisch aufgebaut

Das Mental-Modell hinter der On-Premises-Installation: Tomcat, Java, Datenbank, Reverse Proxy und die zentralen Konfigurationsdateien – und wie die Anfragen durch das System fließen.

Bevor du teamspace installierst, lohnt sich ein Blick auf die Architektur. Wer die Bausteine und ihre Konfigurationsdateien kennt, versteht die Installationsschritte als Ganzes – statt sie nur abzutippen – und findet Fehler später schneller.

Die Bausteine

teamspace ist eine Java-Webanwendung. Sie besteht aus diesen Komponenten:

  • Apache Tomcat 10 – der Anwendungsserver. Hier wird die teamspace-.war ausgeliefert (entpackt in das webapp-Verzeichnis). Der Tomcat lauscht intern auf Port 8080.
  • OpenJDK 17 (Temurin) – die Java-Laufzeit, unter der der Tomcat läuft.
  • MySQL 8 / MariaDB 10.5 – die Datenbank mit Benutzer und Schema projectfacts.
  • Reverse Proxy (Apache 2.4 oder Nginx 1.24) – nimmt die Anfragen aus dem Internet auf Port 80/443 entgegen, terminiert das SSL/TLS-Zertifikat und leitet sie intern an den Tomcat auf localhost:8080 weiter.
  • userfiles-Verzeichnis – die Dateiablage des Dateimoduls. Sie liegt außerhalb der Anwendung (z. B. /srv/projectfacts/userfiles bzw. C:\projectfacts\userfiles) und kann auf eine separate Festplatte ausgelagert werden.
Architektur-Schema: der Browser/Client erreicht über HTTPS (Port 443) den Reverse Proxy (Apache 2.4 / Nginx 1.24, Port 80/443, TLS-Terminierung); dieser leitet intern an Tomcat 10 (Port 8080, nur localhost) mit OpenJDK 17 und der teamspace-Webapp weiter; Tomcat spricht die Datenbank (MySQL 8 / MariaDB 10.5, Port 3306) und das userfiles-Verzeichnis an.
Komponenten und Datenfluss: Client → Reverse Proxy (80/443) → Tomcat (8080) → Datenbank/Userfiles

Der Weg einer Anfrage

Browser/Client  ──HTTPS (443)──▶  Reverse Proxy (Apache/Nginx)
                                        │  entschlüsselt TLS,
                                        │  setzt X-Forwarded-Proto

                                   Tomcat (8080)  ──▶  teamspace-Webapp (Java)


                            MySQL/MariaDB (3306)   +   userfiles-Verzeichnis

Der Reverse Proxy ist die einzige nach außen offene Stelle. Der Tomcat selbst ist nur für localhost erreichbar – bei Docker wird das zusätzlich per iptables abgesichert.

Die zentralen Konfigurationsdateien

Bei einer Installation arbeitest du immer wieder mit denselben vier Dateien. Es hilft, ihre Rollen auseinanderzuhalten:

DateiRolle
web.xml (webapp/WEB-INF/web.xml)Anwendungsparameter (context-param): Pfade zu htdocs/Daten, Mailabruf-Intervall (timer.mailfetcher), erlaubte Mailempfänger (mail.positive_mail_list), Server-URL (server.url), OAuth-/PDF-Dienst.
ROOT.xml bzw. context.xmlDie Datenbankverbindung (Connection-Pool). Seit Version 2023.4 verwaltet der Tomcat den Pool über eine Resource mit username, password und url. Vorher stand das in der data-source.xml.
server.xml (Tomcat)Der Tomcat selbst: Connector, Host (unpackWARs="false", autoDeploy="false"), Listener.
deploy-war-Skript (deploy-war.sh / .bat / -docker.sh)Entpackt eine neue .war und sichert dabei die bestehende Konfiguration. Es kennt den Installationspfad über die Variable BASEDIR.

Wichtig: Die ROOT.xml/context.xml mit den Zugangsdaten zur Datenbank wird beim Update nicht überschrieben – dafür sorgt das Deploy-Skript. Bei eigenen Anpassungen am Skript ist genau darauf zu achten.

Standard, Docker und die „Teil-Containerisierung”

Es gibt zwei Betriebsformen:

  • Standardinstallation (Linux/Windows): Tomcat, Java, Datenbank und Reverse Proxy laufen direkt auf dem Betriebssystem.
  • Docker (nur Linux): Nur Tomcat und Java stecken in einem Container. MySQL/MariaDB, die teamspace-Anwendung und die Userfiles laufen weiterhin auf dem Host – sie werden über Volumes in den Container eingebunden, und der Tomcat erreicht die Datenbank über das Docker-Netzwerk unter 172.17.0.1. Diese „Teil-Containerisierung” ist gewollt; eine vollständige Containerisierung sowie Kubernetes werden nicht unterstützt.

Hinweise

  • Zeitzonen müssen zusammenpassen: Die Zeitzone der Datenbank muss mit der des Betriebssystems übereinstimmen, auf dem der Tomcat läuft. Unter Linux prüfst du sie mit cat /etc/timezone.
  • Zwei Markennamen, ein Produkt: projectfacts und teamspace sind technisch identisch. In den Anleitungen steht meist projectfacts; bei teamspace ersetzt du den Namen.

Verwandte Themen