Diese Anleitung führt Sie durch die Einrichtung des TiMaS-Systems in einer modernen Docker-Umgebung. Sie richtet sich allgemein an Linux-Systeme, zeigt jedoch beispielhaft die Schritte für einen Ubuntu-Server. Nach erfolgreicher Ausführung steht Ihnen TiMaS inklusive Datenbank, Verwaltungsoberfläche der Datenbank (phpMyAdmin) und optionalem HTTPS via Traefik zur Verfügung.
.env Datei anpassen.env-DateiSie benötigen:
Hinweis:
Diese Anleitung beschreibt die Einrichtung von Docker, Docker Compose und dem TiMaS-System auf einem Ubuntu-Server.
🛈 Hinweis: Dieser Schritt ist optional, wenn Docker und Docker Compose bereits auf dem System installiert und funktionsfähig sind. In diesem Fall können Sie direkt mit Punkt 3 „Arbeitsverzeichnis einrichten“ fortfahren.
In diesem Schritt wird das Linux-System vorbereitet, indem grundlegende Werkzeuge installiert und ein Schlüsselring für das Docker-Repository eingerichtet wird.
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
In diesem Schritt wird das offizielle Docker-Repository in das System eingebunden.
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
In diesem Schritt installieren Sie die wichtigsten Docker-Komponenten, mit denen Sie Container starten und verwalten können
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Erstellen Sie für den Betrieb von TiMaS einen eigenen Systembenutzer, z. B. timas.
Dieser Benutzer sollte Mitglied der Gruppe docker sein, um Container verwalten zu können.
💡 Hinweis: Root- oder
sudo-Rechte sind lediglich für die Installation erforderlich, nicht für den regulären Betrieb. Der Benutzer benötigt außerdem Schreibzugriff auf das TiMaS-Arbeitsverzeichnis (/srv/timas).
sudo adduser timas && sudo usermod -aG docker timas
Erstellen Sie das Arbeitsverzeichnis unter /srv:
sudo mkdir -p /srv/timas
Automatischer Download per curl
Laden Sie das Archiv mit curl herunter, entpacken Sie es in das Arbeitsverzeichnis, und setzen Sie anschließend die Dateiberechtigungen:
cd /srv
sudo curl -L -o timas.tar.gz https://dl.timas.cloud/timas.tar.gz
sudo tar -xzf timas.tar.gz -C timas
sudo rm timas.tar.gz
Wenn sich die Dateien bereits lokal auf dem System befinden, können Sie sie einfach per Datei-Explorer/WinSCP oder per cp-Befehl in das Zielverzeichnis kopieren:
Das TiMaS Docker Installations Paket können Sie von hier herunterladen:
https://dl.timas.cloud/timas.tar.gz
Das Archiv unter /srv ablegen und dann folgende Befehle ausführen:
cd /srv
sudo tar -xzf timas.tar.gz -C timas
sudo rm timas.tar.gz
Legen Sie Ihre Lizenzdatei (Dateiendung .pusl) im folgenden Verzeichnis ab:
/srv/timas/data/license/
Beispiel für den Transfer per scp:
scp pus7000.pusl root@server.xy:/srv/timas/data/license
💡 Hinweis: Achten Sie darauf, die Datei an die korrekte Adresse und in das richtige Verzeichnis zu übertragen.
Der Besitz des gesamten Verzeichnisses wird abschließend auf den Benutzer timas übertragen, damit dieser später vollen Zugriff auf alle Dateien hat.
sudo chown -R timas:timas /srv/timas
.env Datei anpassenBearbeiten Sie die Datei .env im Projektverzeichnis.
Zum Beispiel mit nano
nano .env
Benötigte Angaben:
TIMAS_LICENSE_NAME: Name der Lizenzdatei (z. B. pus7000.pusl). Diese Datei erhalten Sie von dem Händler, bei dem Sie TiMaS erworben haben.
TIMAS_VERSION: Gewünschte TiMaS-Version laut Lizenz
TIMAS_HTTP_HOST_RULE: IP-Adresse(n) oder Domain(s) des Servers (für Traefik)
TIMAS_LICENSE_NAME=pus7000.pusl
TIMAS_VERSION=1.149.3
TIMAS_HTTP_HOST_RULE=Host(`abc.timas.de`) || Host(`localhost`) || Host(`127.0.0.1`)
Passen Sie die folgenden Umgebungsvariablen an, um SSL über Let's Encrypt zu nutzen:
TIMAS_HTTPS_HOST_RULE=Host(`abc.timas.de`)
TRAEFIK_SSL=true
LETSENCRYPT_EMAIL=ihre-mail@mail.de
💡 Hinweis: Ersetzen Sie abc.timas.de durch Ihre eigene Domain und tragen Sie Ihre gültige E-Mail-Adresse ein. Diese wird von Let's Encrypt für Zertifikatsbenachrichtigungen verwendet.
🔁 Melden Sie sich anschließend als Benutzer timas an (z. B. per su - timas oder durch Ab- und Anmeldung).
Führen Sie diesen Befehl im Projektverzeichnis aus, um Zugang zur Container-Registry zu erhalten:
cd /srv/timas
docker login reg.pus-gmbh.eu -u docker-fetch --password-stdin < reg.pat
✅ Hinweis: Falls Sie der Empfehlung aus Kapitel 3 gefolgt sind und TiMaS mit einem eigenen Benutzer (z. B.
timas) betreiben, der Mitglied der Gruppedockerist, können Sie die folgende Befehle auch ohnesudoausführen
Dies installiert den Datenbankserver und spielt die Auslieferungs-Datenbank ein
docker compose up timas_db
Die laufende Konsolenausgabe wird angezeigt, bis Sie mit Ctrl + C abbrechen.
Beim ersten Start empfiehlt es sich, die Container im Vordergrund auszuführen. So sehen Sie direkt alle Ausgaben im Terminal und erkennen, ob die Dienste korrekt starten oder ob es Fehler gibt (z. B. Lizenzproblem oder fehlende Konfiguration).
docker compose up
Die laufende Konsolenausgabe wird angezeigt, bis Sie mit Ctrl + C abbrechen.
Für den produktiven Einsatz wird empfohlen, TiMaS im sogenannten "Detached Mode" zu starten. Dadurch laufen alle Container dauerhaft im Hintergrund.
docker compose up -d
Dieser Befehl startet alle definierten Dienste im Hintergrund. Bei einem Neustart des Systems werden die Container automatisch wieder gestartet,
# Traefik Logs
docker logs timas_db
# Ausgabe der TiMaS Logs
docker logs timas_server
# Traefik Logs
docker logs traefik
docker logs -f timas_server
💡 Hinweis: Verfügbar ab TiMaS Version 1.150.0.
Mit folgendem Befehl starten Sie ein manuelles Backup der Datenbank aus dem laufenden Container heraus:
docker exec timas_server backup
Die Sicherung wird dabei automatisch in das Verzeichnis /srv/timas/data/files/backups/ auf dem Host geschrieben.
Manchmal ist es sinnvoll oder notwendig, direkt in den laufenden TiMaS-Container zu wechseln – etwa zur Fehleranalyse, zum manuellen Ausführen von Befehlen oder zur Kontrolle von Dateien. Dies geschieht über eine interaktive Shell mit folgendem Befehl:
docker exec -it timas_server sh
# Beispiel: Backup ausführen
sh cronjobs/backup_database.sh
# Container wieder verlassen
exit
| Pfad | Bedeutung |
|---|---|
/data/license |
Lizenzdatei von TiMaS |
/data/logs |
Protokolle von TiMaS |
/data/files |
Von TiMaS generierte Dateien |
/data/mysql |
MariaDB-Datenbankdaten |
/data/traefik |
Traefik mit z.B. Zertifikatspeicher für (Let's Encrypt) |
💡 Hinweis: Die Ports können in der .env-Datei angepasst werden.
| Port | Dienst | Beschreibung | Konfigurierbar über |
|---|---|---|---|
| 80 | HTTP | TiMaS ohne Verschlüsselung | TIMAS_HTTP_PORT |
| 443 | HTTPS | TiMaS mit Verschlüsselung | TIMAS_HTTPS_PORT |
| 8085 | phpMyAdmin | Datenbank-Verwaltung | TIMAS_PMA_PORT |
.env-DateiBearbeiten Sie die Datei .env im Projektverzeichnis. Dort legen Sie unter anderem Lizenzinformationen, Netzwerkeinstellungen, Ressourcenbegrenzungen und Zugangsdaten fest.
| Variable | Beschreibung |
|---|---|
TIMAS_LICENSE_NAME |
Name der Lizenzdatei (z. B. pus7000.pusl). Bereitgestellt durch den Händler. |
TIMAS_VERSION |
Freigegebene Version, die durch Ihre Lizenz aktiviert ist. |
TIMAS_MEMORY_MIN |
Minimale Menge an zugewiesenem RAM (z. B. 512m). |
TIMAS_MEMORY_LIMIT |
Maximale RAM-Zuweisung (z. B. 2g). |
TIMAS_CONTAINER_ARCH |
Zielarchitektur des Containers: amd64 (x86_64) oder arm64. |
TIMAS_HTTP_PORT |
Port für HTTP-Zugriff (Standard: 80). |
TIMAS_HTTPS_PORT |
Port für HTTPS-Zugriff (Standard: 443). |
TIMAS_HTTP_HOST_RULE |
Hostregel für Zugriff über HTTP, z. B. IP-Adressen oder Domains. |
TIMAS_HTTPS_HOST_RULE |
Hostregel für Zugriff über HTTPS. |
TRAEFIK_SSL |
Aktiviert SSL/TLS über Traefik (true/false). |
LETSENCRYPT_EMAIL |
E-Mail für Let's Encrypt Zertifikatsbeantragung (bei SSL aktiv). |
TIMAS_DB_PASSWORD |
Benutzerpasswort der MariaDB-Datenbank. |
TIMAS_DB_ROOT_PASSWORD |
Root-Passwort der MariaDB-Datenbank. |
TIMAS_ADMIN_USER |
Benutzername für das Admin-Webinterface. |
TIMAS_ADMIN_PASSWORD |
Passwort für das Admin-Webinterface. |
TIMAS_WEBTERMINAL_TZ |
Zeitzone für das Web-Terminal (z. B. Europe/Berlin). |