Installation

Aktuell ist Version 0.4.0. Fertige Pakete für Debian 13 (amd64) gibt es über eine eigene apt-Paketquelle; Updates kommen dann mit `apt upgrade`. Wer lieber selbst baut, nutzt `make deb`. Danach kann man mit eigenen API-Keys chatten.

Stand 0.4.0: Zu jedem Versions-Tag baut GitHub Actions das Paket auf Debian 13, hängt es an das GitHub-Release und stellt es in die apt-Paketquelle (die letzten drei Versionen). Neu sind die Abhängigkeiten bubblewrap (Berechnungen) sowie Pango, harfbuzz und DejaVu-Schriften (PDF-Blätter). Wer von 0.2 kommt, liest Update auf 0.3. Eine Testinstallation auf einem frischen Debian 13 steht noch aus, der Docker-Weg ist bisher ungetestet. Die vollständige Betriebsanleitung (mit Backup) folgt mit Meilenstein 12.

Voraussetzungen

Weg 1: Debian-Paket (empfohlen)

Das Paket multi-gpt bringt seine eigene Python-Umgebung in /usr/share/python/multi-gpt mit und wird über systemd gestartet. Es legt den Systemnutzer multi-gpt an, Daten liegen in /var/lib/multi-gpt. nginx und TLS sind Teil des Pakets: gunicorn lauscht nur auf 127.0.0.1, davor steht nginx auf demselben Rechner.

1. Paketquelle einrichten (einmalig):

sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://beerlesklopfer.github.io/multi-gpt/apt/multi-gpt.gpg \
  | sudo tee /etc/apt/keyrings/multi-gpt.gpg >/dev/null
sudo tee /etc/apt/sources.list.d/multi-gpt.sources >/dev/null <<'EOF'
Types: deb
URIs: https://beerlesklopfer.github.io/multi-gpt/apt
Suites: stable
Components: main
Architectures: amd64
Signed-By: /etc/apt/keyrings/multi-gpt.gpg
EOF
sudo apt update

Der Schlüssel, mit dem die Paketquelle signiert ist, hat den Fingerabdruck 8822 DF96 2A10 31EC AD6A 6F40 3DE7 6675 16FC 28FF (prüfen mit gpg --show-keys /etc/apt/keyrings/multi-gpt.gpg).

2. Installieren:

sudo apt install multi-gpt

Updates kommen danach mit sudo apt update && sudo apt upgrade. Ohne Paketquelle geht es auch mit dem .deb aus dem GitHub-Release (sudo apt install ./multi-gpt_<version>_amd64.deb) oder selbst gebaut im Quellcode-Ordner:

sudo apt install build-essential debhelper dh-virtualenv python3-dev python3-venv
make deb    # das .deb liegt danach im übergeordneten Ordner

Bei der Installation passiert Folgendes:

3. Datenbank von Hand anlegen (nur nötig, wenn das Paket sie nicht anlegen konnte, etwa weil PostgreSQL bei der Installation nicht lief):

sudo -u postgres createuser multi-gpt
sudo -u postgres createdb -O multi-gpt multi-gpt
sudo -u postgres psql -d multi-gpt -c 'CREATE EXTENSION IF NOT EXISTS vector'

4. Konfiguration prüfen: In /etc/multi-gpt/.env bei Bedarf DATABASE_URL anpassen. Danach sudo systemctl restart multi-gpt.

5. Ersten Verwalter erstellen (und das Schema nachziehen, falls die automatische Migration nicht lief):

sudo mgpt-ctl migrate
sudo mgpt-ctl createsuperuser

mgpt-ctl ist ein Wrapper um Djangos manage.py, der als Nutzer multi-gpt mit /etc/multi-gpt/.env läuft. mgpt-ctl migrate lässt sich jederzeit gefahrlos wiederholen. Alle Befehle stehen im Wiki: mgpt-ctl.

MultiGPT ist danach unter https://<hostname>/ erreichbar. Ob die App läuft, zeigt curl -k https://<hostname>/healthz/ (-k nur mit dem snakeoil-Zertifikat).

6. Dokumentsuche einrichten (optional): Im Admin unter „Dokumente (RAG)“ → „Einstellungen“ ein Embedding-Modell wählen (lokal z. B. nomic-embed-text über LM Studio) und mit „Speichern und Embedding testen“ prüfen; für gescannte PDFs das OCR-Verfahren (olmOCR über LM Studio oder Tesseract) wählen und mit „Speichern und OCR testen“ prüfen. Die Anleitung dazu steht im Wiki: RAG einrichten, Ordner vom Server oder NAS beschreibt Wiki: Verzeichnisquellen (dafür RAG_SOURCE_ROOTS in /etc/multi-gpt/.env setzen).

7. Websuche einrichten (optional): Ein SearXNG im Heimnetz aufsetzen, im Admin die Adresse eintragen und mit „SearXNG testen“ prüfen, danach die Websuche einschalten. Die Anleitung steht im Wiki: SearXNG.

Runner (optional)

Der Runner gibt Modellen einen Container auf einem Rechner im Heimnetz als Arbeitsumgebung. Er ist ein eigenes Programm (multigpt-runner) und gehört nicht zur Installation des Servers. Auf dem Rechner, auf dem der Browser läuft, braucht man Linux (amd64 oder arm64) mit systemd und Podman rootless. Ablauf: auf der Seite „Runner“ in MultiGPT einen Token erzeugen, das Programm dort von MultiGPT herunterladen (mit Prüfsumme) und mit pair koppeln. Die Schritte stehen im Wiki unter Runner.

Zur Sicherheit: Die Web-Ports des Runners (24080 und 24443) sind standardmäßig im ganzen Heimnetz ohne Anmeldung erreichbar. Wer das nicht will, setzt MGPT_EXPOSE_BIND=127.0.0.1 (Einzelheiten im Wiki).

Update auf 0.3

Das Paket migriert die Datenbank bei jedem Update selbst. Beim Update von 0.2 auf 0.3.x sind zusätzlich einige Schritte einmalig von Hand nötig (sie stehen auch in debian/NEWS):

1. Paket aktualisieren (holt bubblewrap, Pango, harfbuzz und DejaVu mit) – mit der Paketquelle aus Weg 1 sudo apt update && sudo apt upgrade, sonst:

sudo apt install ./multi-gpt_<version>_amd64.deb

2. Fähigkeiten der Modelle erkennen lassen. Vorhandene Modelle stehen bei „Werkzeuge“ auf „nein“ und bekommen sonst weder Websuche noch Seitenabruf, Dokument-Werkzeuge, Berechnungen oder PDF-Blätter angeboten:

sudo mgpt-ctl guess_capabilities            # Vorschau
sudo mgpt-ctl guess_capabilities --apply    # speichern

Alternativ im Admin: „KI-Modelle“ → Aktion „Fähigkeiten automatisch erkennen“. Neue Modelle bekommen ihre Fähigkeiten automatisch. Die MCP-Freigabe je Modell ändert der Befehl nie; neue lokale Modelle dürfen MCP-Werkzeuge erst nach Freigabe in der Spalte „MCP“ nutzen.

3. Dokumente neu indexieren, damit Zitate Absatz und Abschnitt nennen (und, falls eingeschaltet, Abbildungen beschrieben werden): im Admin unter „Dokumente (RAG)“ „Alles neu indexieren“ oder

sudo mgpt-ctl reindex

4. Prüfen: Im Admin unter „Chat-Einstellungen“ → „Sandbox testen“. Wer die Unit multi-gpt.service per Drop-in überschreibt, ergänzt AF_NETLINK bei RestrictAddressFamilies= bzw. lässt RestrictNamespaces= weg.

Alle Verwaltungsbefehle und Optionen beschreibt das Wiki: mgpt-ctl.

Weg 2: Docker

Für Systeme ohne apt. Das Image baut und installiert dasselbe Debian-Paket; compose.yaml bringt PostgreSQL mit pgvector als zweiten Dienst mit. Konfiguration kommt aus .env im Projektordner (mindestens SECRET_KEY, FIELD_ENCRYPTION_KEY, ALLOWED_HOSTS, POSTGRES_PASSWORD).

docker compose build
docker compose up -d db
docker compose run --rm web mgpt-ctl migrate
docker compose run --rm web mgpt-ctl createsuperuser
docker compose up -d

Hinweis: Der Docker-Weg ist noch nicht getestet.

Weg 3: Entwicklung mit make

Das Makefile ist die Bedienoberfläche für die Entwicklung. Voraussetzung ist ein lokales PostgreSQL mit pgvector.

make db-create install migrate user dev