Zum Hauptinhalt springen
Hilfecenter

teamspace unter Linux installieren

Vollständige Schritt-für-Schritt-Installation von teamspace/projectfacts unter Debian/Ubuntu: Pakete, Pfade, web.xml, MariaDB/MySQL, Tomcat, Jasper-Font, Berechtigungen und Update.

Voraussetzungen

  • Root-Rechte auf einem Server mit Debian/Ubuntu (siehe Systemvoraussetzungen)
  • Ein teamspace-classic-Account für die Installationsdateien
  • Eine Datenbankvorlage (Dump) – auf Anfrage über teamspace-classic

Diese Anleitung führt dich durch eine vollständige Linux-Installation von projectfacts/teamspace unter Debian/Ubuntu. Die meisten Schritte benötigen Root-Rechte. Den Reverse Proxy (Apache oder Nginx) richtest du anschließend in einem eigenen Artikel ein.

In der Anleitung wird durchgängig der Name projectfacts verwendet. Hast du teamspace, ersetze den Namen entsprechend. Die jeweiligen Pfade können bei bestehenden Installationen abweichen.

1. Pakete installieren

Installiere die benötigte Software (Root-Rechte erforderlich):

apt update && apt upgrade -y && apt install mariadb-server tomcat10 openjdk-17-jdk-headless vim apache2 unzip htop libtcnative-1 bash-completion net-tools -y
ZweckPfad
projectfacts/srv/projectfacts
userfiles/srv/projectfacts/userfiles
Tomcat server.xml/etc/tomcat10/server.xml
MySQL my.cnf/etc/mysql/my.cnf
web.xml/srv/projectfacts/webapp/WEB-INF/web.xml
context.xml/srv/projectfacts/webapp/META-INF/context.xml
Apache Ports/etc/apache2/ports.conf
Apache SSL/etc/apache2/ssl/
Apache Sites/etc/apache2/sites-available/
Nginx/etc/nginx

3. Installation

  1. Lege folgende Ordner an:
    • /srv/projectfacts
    • /srv/projectfacts/logs
    • /srv/projectfacts/webapp
    • /srv/projectfacts/userfiles
    • /srv/projectfacts/jasper-font
  2. Kopiere die deploy-war.sh sowie die projectfacts.war in das Verzeichnis /srv/projectfacts.
  3. Mache das Skript ausführbar und führe es aus – dabei wird die .war entpackt:
    chmod +x deploy-war.sh
    ./deploy-war.sh
  4. Kopiere die Datei userfiles.tar.gz2 nach /srv/projectfacts/userfiles und entpacke sie:
    tar -xf userfiles.tar.gz2

Prüfe in der deploy-war.sh den Pfad zu projectfacts. Du kannst ihn über die Variable BASEDIR anpassen. Läuft der Tomcat unter einem anderen Benutzer als tomcat10, passe zusätzlich das chown im Skript an.

4. web.xml anpassen

Öffne die web.xml und passe die Pfade an deine Installation an:

vim /srv/projectfacts/webapp/WEB-INF/web.xml
<context-param>
  <param-name>path.htdocs.directory</param-name>
  <param-value>/srv/projectfacts/webapp/htdocs/</param-value>
</context-param>
<context-param>
  <param-name>path.data.directory</param-name>
  <param-value>/srv/projectfacts/webapp/WEB-INF/data/</param-value>
</context-param>
<context-param>
  <param-name>timer.mailfetcher</param-name>
  <param-value>30</param-value>
</context-param>
<context-param>
  <param-name>mail.positive_mail_list</param-name>
  <param-value>.*</param-value>
</context-param>
<context-param>
  <param-name>server.url</param-name>
  <param-value>https://projectfacts.mycompany.de</param-value>
</context-param>
<context-param>
  <param-name>webdav.url</param-name>
  <param-value>https://projectfacts.mycompany.de</param-value>
</context-param>
  • timer.mailfetcher gibt in Sekunden an, wie oft Mails abgeholt/versendet werden (hier alle 30 Sekunden). Eine 0 deaktiviert den Mailverkehr.
  • mail.positive_mail_list mit dem Wert .* erlaubt den Versand an alle E-Mail-Adressen.
  • server.url und webdav.url auf deine Domain setzen.

5. MariaDB/MySQL konfigurieren

Datenbankbenutzer: projectfacts · Datenbankname: projectfacts · Passwort: frei wählbar. Der Benutzer benötigt vollen Zugriff auf die Datenbank.

Importiere zuerst die Zeitzonen – sonst startet der MySQL-Server nicht:

mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql

Lege die Datei /etc/mysql/mariadb.conf.d/51-projectfacts.cnf an:

[mysqld]
bind-address = 127.0.0.1
skip-name-resolve

# projectfacts Optimierungen
default-time-zone       = Europe/Berlin
lower_case_table_names  = 1
innodb_buffer_pool_size = 1G
max_heap_table_size     = 512M
tmp_table_size          = 512M
innodb_log_file_size    = 256M
group_concat_max_len    = 4096
character-set-server    = utf8mb4
collation-server        = utf8mb4_unicode_ci
#tmpdir                  = /var/log/mysql/tmp

sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

# Optimierung für MariaDB 10.4+
#optimizer_switch        = 'rowid_filter=off'
#query_cache_size        = 0
#query_cache_type        = 0

Starte den MariaDB/MySQL-Server anschließend neu.

Die Zeitzone der Datenbank muss mit dem Betriebssystem übereinstimmen, auf dem der Tomcat läuft. Unter Linux prüfst du sie mit cat /etc/timezone.

Datenbank importieren

Kontaktiere uns für eine Vorlage der Datenbankstruktur, falls du noch keinen Dump besitzt.

context.xml anpassen

Damit die Datenbankverbindung zustande kommt, kopierst du die Datei webapp/META-INF/context.xml nach tomcat10/conf/Catalina/localhost/ROOT.xml. Das Verzeichnis wird automatisch erstellt, sobald der Tomcat das erste Mal gestartet wird. In der kopierten Datei passt du docBase, username, password und url an.

6. Tomcat konfigurieren

Ab Tomcat-Version 9.0.92 oder höher muss dein projectfacts/teamspace mindestens auf 2024.2.68 bzw. 2024.1.72 aktualisiert sein, sonst erhältst du eine Fehlermeldung.

Passe die Datei /etc/tomcat10/server.xml an:

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="off" />
[…]
<Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="false">

Um dem Tomcat mehr Arbeitsspeicher zu geben, bearbeite /etc/defaults/tomcat10:

JAVA_OPTS="-Djava.awt.headless=true -Xmx2048m"

Nächtlicher Tomcat-Neustart

Melde dich als Root an, gib crontab -e ein und füge folgende Zeile hinzu (Neustart täglich um 04:00 Uhr):

00 4 * * * systemctl restart tomcat10 >/dev/null 2>&1

Tomcat 10 Read-Only-Filesystem-Fix

Dieses Problem tritt auf, wenn der Tomcat aus dem Repository folgender Systeme installiert wird: ab Ubuntu 18.04, ab Debian 9.

  1. Lege Ordner und Override-Datei an:
    mkdir /etc/systemd/system/tomcat10.service.d/ && vim /etc/systemd/system/tomcat10.service.d/override.conf
  2. Füge folgenden Inhalt ein und speichere:
    [Service]
    ReadWritePaths=/srv/projectfacts/userfiles/
  3. Lade den Daemon neu und starte den Tomcat:
    systemctl daemon-reload
    systemctl restart tomcat10

Schriftart hinzufügen (Jasper-Font)

  1. Lade die jasper-font-default-1.2.0.jar von teamspace-classic.de herunter und lege sie in /srv/projectfacts/jasper-font/ ab.
  2. Erstelle einen Symlink:
    ln -s /srv/projectfacts/jasper-font/jasper-font-default-1.2.0.jar /usr/share/tomcat10/lib/jasper-font-default-1.2.0.jar
  3. Starte den Tomcat neu.

Anpassung für PDF

Damit die PDF-Erzeugung sauber läuft, kommentiere eine Zeile in der Java-Accessibility-Konfiguration aus:

vim /etc/java-17-openjdk/accessibility.properties

Kommentiere folgende Zeile aus und speichere:

#assistive_technologies=org.GNOME.Accessibility.AtkWrapper

Starte den Tomcat anschließend neu.

Berechtigungen anpassen

chown -R tomcat10:tomcat10 /srv/projectfacts /srv/projectfacts/userfiles
systemctl start tomcat10.service

7. projectfacts-Update

Erstelle vor jedem Update ein Backup. Es darf immer nur eine .war-Datei vorhanden sein, und ein Downgrade ist nicht zulässig.

  1. Lade die aktuelle projectfacts-x.x.xx.war aus teamspace-classic (» Hauptordner → Aktuelle Version → UPDATE HINWEISE BEACHTEN! «) und beachte die Versionshinweise.
  2. Kopiere die Datei nach /srv/projectfacts/.
  3. Stoppe den Tomcat und prüfe, ob er wirklich gestoppt ist:
    systemctl stop tomcat10
  4. Führe im projectfacts-Verzeichnis das Deploy-Skript aus:
    ./deploy-war.sh
  5. Starte den Tomcat wieder:
    systemctl start tomcat10
  6. Prüfe in der projectfacts.log (unter /var/log/tomcat/projectfacts.log), ob das Update erfolgreich war, und entferne danach die .war aus /srv/projectfacts/.

Das vollständige Vorgehen samt Update-Benachrichtigung steht in Update durchführen.

Typische Fragen & Anforderungen

Du möchtest …So geht’s
Mails sollen nicht nur an die eigene Domain gehenIn der web.xml mail.positive_mail_list auf .* setzen.
Mailabruf abschaltenIn der web.xml timer.mailfetcher auf 0 setzen.
Dem Tomcat mehr RAM gebenIn /etc/defaults/tomcat10 den Wert -Xmx in JAVA_OPTS erhöhen.
Tomcat startet nicht (Read-Only Filesystem)Den Read-Only-Filesystem-Fix per override.conf anwenden.
MySQL startet nach der Konfiguration nichtVor der .cnf-Anpassung die Zeitzonen mit mysql_tzinfo_to_sql importieren.
Den Reverse Proxy einrichtenMit Apache oder Nginx fortfahren.

Verwandte Themen