RIDING BYTES
← Alle Insights

30. Dezember 2024 · 12 Minuten Lesezeit

SENAITE LIMS auf einem frischen Ubuntu 24.04 Server installieren

Eine produktionsnahe Installation von SENAITE auf Ubuntu 24.04. Systemabhängigkeiten, Buildout, Plone-Admin und ein systemd-Dienst, der Neustarts übersteht.

SENAITE LIMS auf einem frischen Ubuntu 24.04 Server installieren

Docker ist die richtige Antwort für die Evaluation. In der Produktion betreiben die meisten Labore SENAITE direkt auf einem Linux-Server. Die Gründe: Backup-Verfahren, vorhersehbare Leistung, einfache Integration mit Geräteschnittstellen im selben Netz und die operative Vertrautheit eines normalen Linux-Dienstes.

Diese Anleitung führt durch einen frischen Ubuntu 24.04 LTS Server und endet mit einem SENAITE-Prozess unter systemd, vorgeschaltet nginx, mit dem ZODB auf einer Festplatte, die Sie snapshotten können. Es ist nicht der einzig richtige Weg, SENAITE zu installieren. Es ist der Weg, wie wir es ausrollen.

Was Sie brauchen

  • Einen Server mit Ubuntu 24.04 LTS, 4 GB RAM Minimum, 8 GB empfohlen.
  • Root-SSH-Zugang.
  • Einen DNS-Namen, der auf den Server zeigt, wenn Sie HTTPS wollen (das wollen Sie).
  • 30 bis 45 Minuten.

Basissystem aktualisieren

sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential git curl

Python und Build-Abhängigkeiten installieren

SENAITE 2.x läuft auf Python 3.10+. Ubuntu 24.04 liefert Python 3.12, das funktioniert.

sudo apt install -y \
  python3 python3-venv python3-dev \
  libxml2-dev libxslt1-dev libjpeg-dev zlib1g-dev \
  libssl-dev libffi-dev \
  libopenjp2-7-dev libtiff-dev libfreetype6-dev \
  libpq-dev

Die Bildbibliotheken werden für die PDF-Berichtserzeugung benötigt. Der PostgreSQL-Client-Header ist optional, aber harmlos.

Dedizierten Systembenutzer anlegen

Alles als root laufen zu lassen, was nicht muss, ist schlechte Praxis.

sudo adduser --system --group --home /opt/senaite senaite
sudo -u senaite -H mkdir -p /opt/senaite/instance

Buildout klonen und bootstrappen

SENAITE wird per zc.buildout ausgerollt. Der kanonische Einstiegspunkt ist das Repo senaite/senaite.docker, das dieselbe Buildout-Konfiguration mitbringt, die auch das Docker-Image verwendet.

sudo -u senaite -H bash -c '
  cd /opt/senaite/instance
  git clone https://github.com/senaite/senaite.docker.git .
  python3 -m venv venv
  source venv/bin/activate
  pip install --upgrade pip setuptools wheel
  pip install -r requirements.txt
  buildout
'

Der Buildout-Schritt zieht SENAITE und seine Abhängigkeiten, kompiliert Erweiterungen und erzeugt eine bin/instance- Ausführungsdatei. Auf einem frischen Server dauert das beim ersten Mal zehn bis zwanzig Minuten. Kaffeepause.

Plone-Admin-Benutzer anlegen

sudo -u senaite -H /opt/senaite/instance/bin/instance \
  adduser admin <a-strong-password>

Das schreibt einen Admin-Eintrag in /opt/senaite/instance/var/inituser, den Plone beim ersten Start liest. Wählen Sie ein starkes Passwort und speichern Sie es in dem Passwortmanager, in dem Sie es später tatsächlich wiederfinden.

Einmal im Vordergrund laufen lassen

sudo -u senaite -H /opt/senaite/instance/bin/instance fg

Sie sehen das Startup-Logging von Zope und Plone, das in etwas wie INFO Zope Ready to handle requests endet. Ctrl+C beendet.

Wenn Sie davor einen Fehler gesehen haben, ist die häufigste Ursache eine fehlende Systembibliothek aus dem apt-Schritt oben. Lesen Sie die Spur, installieren Sie die Lib, lassen Sie es erneut laufen.

Unter systemd stellen

Legen Sie /etc/systemd/system/senaite.service an:

[Unit]
Description=SENAITE LIMS Zope instance
After=network.target

[Service]
Type=simple
User=senaite
Group=senaite
WorkingDirectory=/opt/senaite/instance
ExecStart=/opt/senaite/instance/bin/instance fg
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Neu laden, aktivieren, starten und prüfen:

sudo systemctl daemon-reload
sudo systemctl enable senaite
sudo systemctl start senaite
sudo systemctl status senaite

status sollte active (running) zeigen und SENAITE sollte auf Port 8080 lauschen.

Mit nginx und HTTPS davor

nginx und certbot installieren:

sudo apt install -y nginx certbot python3-certbot-nginx

/etc/nginx/sites-available/senaite ablegen:

server {
    server_name senaite.your-lab.example;

    location / {
        proxy_pass http://127.0.0.1:8080/VirtualHostBase/https/$host:443/senaite/VirtualHostRoot/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_read_timeout 300s;
        client_max_body_size 50M;
    }

    listen 80;
}

Der VirtualHostBase/.../VirtualHostRoot-Block ist der Virtual- Hosting-Trick von Zope: er schreibt erzeugte URLs so um, dass Besucher saubere Pfade ohne /senaite/ sehen.

Aktivieren und ein Zertifikat besorgen:

sudo ln -s /etc/nginx/sites-available/senaite \
  /etc/nginx/sites-enabled/senaite
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d senaite.your-lab.example

Certbot liest die nginx-Konfiguration, beantragt ein Let’s Encrypt-Zertifikat und schreibt den Serverblock so um, dass er auf 443 mit HSTS lauscht.

Erste Anmeldung

Öffnen Sie https://senaite.your-lab.example und melden Sie sich als der Admin-Benutzer an, den Sie oben angelegt haben. Navigieren Sie zur SENAITE-Site unter /senaite. Von hier können Sie das Demo-Profil installieren (siehe SENAITE mit Demodaten ausstatten) oder echte Kunden, Probentypen und Analyseleistungen konfigurieren.

Was als Nächstes kommt

Ein laufendes SENAITE unter systemd hinter nginx ist der Anfang. Für die Produktion brauchen Sie noch:

  • Backups. ZODB-Packs und Offsite-Snapshots. SENAITE Care Essential deckt das ab EUR 300 pro Monat ab.
  • Monitoring. Datenbankkonsistenz, Antwortzeiten, Ausführung geplanter Tasks. Siehe Warum Ihr SENAITE LIMS proaktives Monitoring braucht.
  • Sicherheitsupdates. OS und SENAITE selbst.
  • Geräteanbindung. Ihre Analysegeräte, Ihre Protokolle.
  • Konfiguration des tatsächlichen Workflows.

All das machen wir hauptberuflich unter SENAITE Care und Individualentwicklung. Wenn das Installieren des Servers der einfache Teil war und der Rest nach Arbeit aussieht, sprechen Sie mit uns.

Bringen Sie das in Ihr Labor

Ob Sie SENAITE evaluieren, über mehrere Standorte skalieren oder Geräte und Monitoring anbinden — das Team, das die Plattform geschrieben hat, ist das Team, mit dem Sie sprechen.

Gespräch starten