Anleitung · Linux

PraxisZeit unter Linux einrichten

Quick-Start für Ubuntu 22.04+, Debian 12 und Fedora 39+. Wahlweise nativ mit systemd oder containerisiert mit Docker — beide Wege sind vollständig dokumentiert.

Voraussetzungen

Vor dem Start prüfen
  • Ubuntu 22.04 LTS+ / Debian 12+ / Fedora 39+
  • sudo-Zugriff auf den Praxis-Server
  • Mindestens 2 GB RAM, 5 GB freier Speicherplatz
  • Port 443 frei
  • Optional: Docker 24+ und Docker Compose v2

Zwei Installationswege

Beide Wege führen zum selben Ergebnis. Wählen Sie nach Komfort:

Docker

Empfohlen

Schnellster Weg für IT-affine Nutzer. PostgreSQL läuft als eigener Container, Updates per docker compose pull.

Nativ

Klassisch via Tarball, install.sh und systemd. Python und PostgreSQL sind im Tarball gebündelt (theseus 16) — keine Voraussetzungen.

Pfad A: Docker-Quick-Start

Docker-Bundle entpacken

Für Docker benötigen Sie das Docker-Bundle (praxiszeit-<version>-docker.tar.gz aus den GitHub-Releases ). Es enthält docker-compose.yml, generate-secrets.sh und den Build-Kontext.

tar -xzf praxiszeit-<version>-docker.tar.gz
cd praxiszeit-<version>

Achtung: Das normale Linux-Tarball (praxiszeit-<version>-linux-x64.tar.gz) ist für die native Installation (Pfad B) und enthält kein docker-compose.ymldocker compose up bricht damit mit no configuration file provided ab.

Secrets erzeugen

Das Skript schreibt eine .env mit starken Zufallswerten (Datenbank-Passwörter, SECRET_KEY) und gibt das initiale Admin-Passwort aus — notieren!

bash generate-secrets.sh

Mit HTTPS starten

Selbstsigniertes Zertifikat erzeugen und die Container mit dem SSL-Overlay starten — beim ersten Start wird das Datenbankschema migriert (wenige Sekunden):

bash ssl/generate-cert.sh
sudo docker compose -f docker-compose.yml -f docker-compose.ssl.yml up -d --build

Logs prüfen Sie mit sudo docker compose logs -f backend.

Im Browser öffnen

Öffnen Sie https://<server-ip> und akzeptieren Sie einmalig das selbstsignierte Zertifikat. Anschließend melden Sie sich mit den Admin-Zugangsdaten aus Schritt 2 an.

Pfad B: Native Installation

Tarball entpacken

Das native Linux-Tarball entpackt flach (ohne Top-Level-Ordner) — daher zuerst einen Zielordner anlegen und mit -C dorthin entpacken:

mkdir -p praxiszeit-<version>
tar -xzf praxiszeit-<version>-linux-x64.tar.gz -C praxiszeit-<version>
cd praxiszeit-<version>

install.sh ausführen

Python und PostgreSQL (theseus 16) sind im Tarball gebündelt — eine vorhandene System-PostgreSQL auf :5432 stört nicht (eigener Cluster über Unix-Socket). Das Skript kopiert die Binaries nach /opt/praxiszeit/, legt den Service-User praxiszeit an, installiert die nötigen Laufzeit-Bibliotheken und richtet die systemd-Unit ein.

sudo ./install.sh

Dienst aktivieren

sudo systemctl enable praxiszeit
sudo systemctl start praxiszeit
sudo systemctl status praxiszeit

Logs verfolgen Sie mit sudo journalctl -u praxiszeit -f.

Firewall öffnen und im Browser öffnen

Auf Ubuntu/Debian mit ufw:

sudo ufw allow 443/tcp

Auf Fedora/RHEL mit firewalld:

sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

Anschließend https://<server-ip> im Browser öffnen.

Vollständige Linux-Anleitung auf GitHub

Reverse-Proxy mit nginx oder Caddy, Backup-Skripte für PostgreSQL, Tipps zu SELinux/AppArmor und Multi-Praxis-Setups finden Sie in der ausführlichen Dokumentation.