Zum Inhalt springen

Docker-Einrichtung

Selu läuft als Gruppe von Docker-Containern. Dadurch kannst du es auf jedem System mit Docker zuverlässig betreiben.

Eine Selu-Installation besteht aus dem Hauptserver und bedarfsweise gestarteten Agent-Containern:

selu

Der zentrale Server. Er übernimmt Dashboard, Nachrichten-Routing, lokale SQLite-Daten und Orchestrierung.

Agent-Container

Jeder installierte Agent läuft in einem eigenen Container. Diese Container werden automatisch erstellt, wenn du Agenten aus dem Marketplace installierst.

Alle Container kommunizieren über ein internes Docker-Netzwerk. Agent-Container verbinden sich per gRPC mit dem Server.

  • Docker Engine 29.2 oder neuer — Selu verwendet die Docker Engine API 1.53, die diese Version voraussetzt
  • Docker Compose Version 2.20 oder neuer
  • Mindestens 2 GB RAM (mehr bei vielen Agenten oder lokalem Ollama)
  • Linux, macOS oder Windows
  1. Erstelle ein Verzeichnis für Selu:
Terminal-Fenster
mkdir selu && cd selu
  1. Starte den Installer:
Terminal-Fenster
bash <(curl -fsSL https://selu.bot/install.sh)
  1. Oder nicht-interaktiv mit gewünschtem Kanal:
Terminal-Fenster
bash <(curl -fsSL https://selu.bot/install.sh) --yes --channel stable

Öffne danach http://localhost:3000 im Browser.

Das Selu-Dashboard nach dem Login mit Seitenleisten-Navigation und Chat-Interface.

Die Standard-docker-compose.yml sieht so aus:

services:
selu:
image: ghcr.io/selu-bot/selu:${SELU_IMAGE_TAG:-stable}
ports:
- "${SELU__SERVER__PORT:-3000}:${SELU__SERVER__PORT:-3000}"
environment:
- SELU__ENCRYPTION_KEY=${SELU__ENCRYPTION_KEY}
- SELU__SERVER__HOST=0.0.0.0
- SELU__SERVER__PORT=${SELU__SERVER__PORT:-3000}
- SELU__DATABASE__URL=sqlite:///app/data/selu.db?mode=rwc
- SELU__MARKETPLACE_URL=https://selu.bot/api/marketplace/agents
- SELU__INSTALLED_AGENTS_DIR=/app/installed_agents
- SELU__RELEASE_METADATA_URL=https://selu.bot/api/releases/selu
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- selu-data:/app/data
- ./installed_agents:/app/installed_agents
volumes:
selu-data:
external: true
name: ${SELU_DATA_VOLUME}

Ältere Installationen speichern Selu-Daten in ./data. Öffne für die Migration dieses Installationsverzeichnis und starte den Installer erneut. Er stoppt Selu und den Updater, kopiert das vollständige Datenverzeichnis in ein neues verwaltetes Volume, prüft die Datenbankkopie und stellt Docker Compose erst danach um. Das alte Verzeichnis ./data bleibt als inaktive Rückfallkopie erhalten.

Terminal-Fenster
bash <(curl -fsSL https://selu.bot/install.sh)

Diese Migration läuft einmalig über den Installer. Ein normales Update im Selu-Dashboard ändert deine Speicherkonfiguration nicht.

Wenn Docker das Image einer installierten Capability nicht mehr im Cache hat — zum Beispiel nach dem Bereinigen des Docker-Image-Caches oder nach dem Umzug auf einen neuen Host — erholt sich Selu automatisch:

  • Beim nächsten Aufruf: Selu lädt das fehlende Image im Hintergrund herunter und startet die Capability anschließend wie gewohnt. Es erscheint kein Fehler; lediglich der erste Aufruf kann etwas länger dauern.
  • Gleichzeitige Anfragen: Wenn mehrere Anfragen gleichzeitig für ein fehlendes Image eintreffen, teilt Selu einen einzigen Download, anstatt mehrere parallel zu starten.

Du kannst fehlende Images auch proaktiv wiederherstellen, ohne auf einen Nutzer warten zu müssen:

  1. Öffne die Detailseite des Agenten und gehe zur Übersicht.
  2. Jede Capability-Karte zeigt einen Image-Status-Badge:
    • Dateien bereit — das Image ist vorhanden, die Capability kann sofort starten
    • Download erforderlich — das Image fehlt; Selu lädt es beim nächsten Aufruf herunter
    • Status nicht verfügbar — Selu konnte den Image-Status nicht ermitteln
  3. Zeigt eine Capability Download erforderlich an, klicke auf Jetzt herunterladen, um das Image sofort im Hintergrund zu laden.
  • Öffne System Updates in der Selu-Oberfläche.
  • Wähle einen Kanal (stable, dev, nightly).
  • Klicke auf Jetzt prüfen und Jetzt aktualisieren oder aktiviere Auto-Update.
  • Falls ein Release die Health Checks nicht besteht, nutze Rollback.

Selu prüft vor dem Update Release-Digests über https://selu.bot/api/releases/selu. Updates werden durch den selu-updater-Sidecar-Container ausgeführt. Der Sidecar aktualisiert sich standardmäßig nicht im selben Lauf, sondern erst im nächsten Update-Zyklus.

  • SELU__ENCRYPTION_KEY geheim halten. Dieser Schlüssel schützt gespeicherte Zugangsdaten.
  • Port 3000 nicht direkt ins Internet stellen. Nutze einen Reverse Proxy (z. B. Nginx oder Caddy) mit HTTPS.
  • Daten regelmäßig sichern. Archiviere das in .env unter SELU_DATA_VOLUME genannte Docker-Volume zusammen mit .env, docker-compose.yml und installed_agents.
  • Zugriff auf den Docker-Socket begrenzen, wenn das System von mehreren Diensten genutzt wird.

Alle Konfigurationsoptionen findest du unter Umgebungsvariablen.