Skip to content

Installation auf dem Server (Schritt für Schritt)

In diesem Kapitel verbinden Sie sich per SSH mit Ihrem VPS, installieren die Basis-Werkzeuge, klonen das Middleware-Repository, installieren die Python-Abhängigkeiten und starten den Server. Außerdem zeigen wir, wie Sie den Dienst im Hintergrund mit systemd betreiben.

Die Beispiele gehen von einer frischen Ubuntu-LTS-VM (22.04/24.04) mit öffentlicher IP aus.

3.1 Per SSH verbinden

SSH ist der Standard, um sich sicher mit einem Linux-Server zu verbinden.

Windows

Unter Windows nutzen Sie am einfachsten PuTTY (kostenloser SSH-Client).

  1. PuTTY installieren und starten
  2. In „Host Name" die öffentliche IP des Servers eintragen
  3. Port 22, Connection SSH
  4. Dann Open klicken
  5. Mit dem vom Anbieter genannten Benutzernamen anmelden (häufig root oder ubuntu)

SSH-Schlüssel

Nutzen Sie nach Möglichkeit SSH-Schlüssel (PuTTYgen erzeugt die Schlüssel).

macOS / Linux

Terminal öffnen und:

bash
ssh ubuntu@<IHRE_SERVER_IP>

Ersetzen Sie ubuntu durch den Standardbenutzer Ihres Images (oft root oder ubuntu).

3.2 System aktualisieren & Basis-Tools installieren

bash
sudo apt update && sudo apt -y upgrade
sudo apt -y install git python3 python3-venv python3-pip

Root-Benutzer

Wenn Sie als root arbeiten, lassen Sie sudo weg.

3.3 Arbeitsverzeichnis anlegen

bash
sudo mkdir -p /opt/bud-e
sudo chown -R "$USER":"$USER" /opt/bud-e
cd /opt/bud-e

3.4 Repository klonen

bash
git clone https://github.com/christophschuhmann/school-bud-e-middleware.git
cd school-bud-e-middleware

3.5 (Empfohlen) Python-Virtuelle Umgebung

Eine virtuelle Umgebung (venv) hält die Python-Pakete der App vom System-Python getrennt.

bash
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip

3.6 Abhängigkeiten installieren

bash
pip install -r requirements.txt

3.7 Konfiguration (Admin-Passwort, Ports, …)

Manche Builds lesen Einstellungen aus Umgebungsvariablen. Falls Ihre Version eine Variable für das Admin-Passwort vorsieht, setzen Sie sie jetzt (Wert anpassen):

bash
export ADMIN_PASSWORD="ein-starkes-passwort"

Alternative Konfiguration

Falls Ihre Version andere Namen oder einen Einrichtungs-Dialog nutzt, siehe README des Repos. Sie können exports auch in /opt/bud-e/env.sh ablegen und später sourcen oder über systemd einbinden.

3.8 Server (im Vordergrund) testen

Starten Sie die App direkt. In den meisten Builds gibt es einen Einstiegspunkt serve.py:

bash
python serve.py --host 0.0.0.0 --port 8000

Lassen Sie das Terminal offen und rufen Sie im Browser http://<IHRE_SERVER_IP>:8000/admin auf.

Test erfolgreich?

Erscheint die Admin-Anmeldung, beenden Sie den Test mit Strg+C.

3.9 Optional: Reverse-Proxy & HTTPS (Caddy oder Nginx)

Für den produktiven Betrieb ist eine Domain mit HTTPS sinnvoll. Am bequemsten ist ein Reverse-Proxy vor Port 8000, der automatisch TLS-Zertifikate von Let's Encrypt bezieht.

Firewall-Ports

Öffnen Sie in Cloud-Firewall und/oder ufw die Ports 80 und 443.

3.10 Betrieb als Dienst mit systemd

Schritt 1: Optional – Env-Datei anlegen

bash
cat <<'EOF' | sudo tee /opt/bud-e/env.sh
export ADMIN_PASSWORD="ein-starkes-passwort"
export BIND_HOST="0.0.0.0"
export BIND_PORT="8000"
EOF
sudo chown root:root /opt/bud-e/env.sh
sudo chmod 600 /opt/bud-e/env.sh

Schritt 2: systemd-Unit erstellen

bash
cat <<'EOF' | sudo tee /etc/systemd/system/admin-bude.service
[Unit]
Description=Admin Bud-E (Middleware)
After=network.target

[Service]
Type=simple
User=%i
WorkingDirectory=/opt/bud-e/school-bud-e-middleware
EnvironmentFile=/opt/bud-e/env.sh
ExecStart=/opt/bud-e/school-bud-e-middleware/.venv/bin/python serve.py --host ${BIND_HOST:-0.0.0.0} --port ${BIND_PORT:-8000}
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

Ohne venv

Ohne venv ersetzen Sie den Python-Pfad durch /usr/bin/python3.

Schritt 3: Aktivieren & starten

bash
sudo systemctl daemon-reload
sudo systemctl enable --now admin-bude.service
sudo systemctl status admin-bude.service

Danach im Browser http://<IHRE_DOMAIN_ODER_IP>:8000/admin (oder die HTTPS-URL des Proxys) aufrufen.

3.11 Basis-Absicherung & Firewall

SSH-Schlüssel verwenden

Passwort-Login möglichst deaktivieren.

Firewall aktivieren

Auf Ubuntu z. B.:

bash
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Verfügbarkeits-Überwachung

Einfache Verfügbarkeits-Überwachung einrichten (z. B. UptimeRobot).

Nächste Schritte

In der Admin-Oberfläche:

  1. Providers & Routes konfigurieren
  2. Pricing hinterlegen
  3. Ersten Aufruf vom Frontend testen

Weiter zur Konfiguration

Fahren Sie fort mit Google Cloud & Vertex AI