For the complete documentation index, see /developers/llms.txt Markdown versions: append .md to any /developers/{slug} URL. Browse structure: /developers/sitemap.md This page: /developers/getting-started.md

Eigen Mesh — Überblick & Schnellstart

Kurz gesagt: Diese Seite richtet sich an Betreiber:innen, die Eigen Mesh auf ihrem eigenen Server mit Docker betreiben möchten. Wenn du neu bei Eigen Mesh bist, starte mit Was ist Eigen Mesh?. Wenn Eigen deine Instanz betreibt, sieh dir Onboarding (Managed) an.

Für wen ist das gedacht

Zielgruppe Hier starten
Endnutzer:innen (Managed Hosting) Was ist Eigen Mesh?Onboarding (Managed)
Betreiber:innen (Self-Hoster) Diese Seite → Umgebungsvariablen
Integratoren (MCP / API) MCP-ÜberblickCursor oder Claude verbinden
Contributor:innen (eigen-Codebase) Für Contributor:innen: Architektur-Übersicht

Für Managed Hosting (Eigen betreibt den Stack) sieh dir Onboarding (Managed) an.


Self-Hosting

Eigen Mesh ist eine selbst hostbare Speicherinfrastruktur: Sie erfasst Gedanken, reichert sie im Hintergrund an und macht sie über hybride Suche und MCP-Tools abrufbar, die dein Assistent direkt aufrufen kann.

Über diese Dokumentationsseite

Du liest Docs, die aus dem Repository eigenWebsite veröffentlicht werden. Deploy-Befehle, Docker Compose und Datenbankmigrationen laufen gegen das separate eigen-Produkt-Repository — nicht gegen dieses Marketing-/Docs-Repo.

Stack

Komponente Technologie
App SvelteKit mit @sveltejs/adapter-node auf Port 3000
Datenbank PostgreSQL 16 mit pgvector und Apache AGE
Auth Better Auth, Drizzle ORM

Architektur

Service Container Rolle
app eigen-app SvelteKit-App auf Port 3000
db eigen-db PostgreSQL 16 mit pgvector + Apache AGE auf Port 5432

Beide Services sind in `docker-compose.yaml` im eigen-Repository definiert.

Voraussetzungen

  • Docker mit dem docker compose-Plugin (Docker Desktop, OrbStack oder Linux)
  • Git

Node.js oder npm werden zum Deploy-Zeitpunkt nicht benötigt, außer du führst die Erstmigrationen vom Host aus.

Schnellstart

git clone https://github.com/your-org/eigen.git && cd eigen
cp .env.example .env
# .env bearbeiten — mindestens BETTER_AUTH_SECRET, TENANT_MASTER_KEY und die LLM-Gateway-Variablen setzen (siehe Umgebungsvariablen)
docker compose up -d --build

Beim ersten Deploy das Datenbankschema initialisieren:

npm install
npm run db:push:force
npm run db:rls

Die App ist unter http://<dein-host>:3000 erreichbar.

Profi-Tipp: Für automatisiertes Ersteinrichtungs-Setup füge einen Init-Schritt hinzu, der node node_modules/drizzle-kit/bin.cjs push --force && node scripts/apply-rls.mjs ausführt, bevor der App-Server startet. Siehe Produktionshärtung weiter unten.

Erforderliche Umgebungsvariablen

Die vollständige Tabelle findest du in der maßgeblichen Referenz Umgebungsvariablen. Mindestens vor dem Live-Gang nötig:

Variable Zweck
BETTER_AUTH_SECRET Session-Verschlüsselung — openssl rand -base64 32
TENANT_MASTER_KEY Envelope-Verschlüsselung pro Tenant
AGE_GRAPH_NAME Name des Apache-AGE-Graphen (Standard eigen_graph)
ORIGIN Öffentliche URL, die Nutzer:innen und OAuth-Callbacks verwenden
LLM_BASE_URL, LLM_API_KEY, LLM_RULE_CHAT, LLM_RULE_EMBEDDING LLM-Gateway für Chat und Embeddings

Deployment auf Coolify

  1. Verbinde das eigen-Repository in Coolify.
  2. Wähle Docker Compose als Build Pack (Coolify erkennt compose.yaml).
  3. Füge Umgebungsvariablen aus Umgebungsvariablen hinzu.
  4. Deploye und warte, bis beide Container gestartet sind.
  5. Erstmigration — nutze den Execute Command-Befehl von Coolify auf dem Container eigen-app:
    npx drizzle-kit push --force && node scripts/apply-rls.mjs
    

Warum Docker Compose?

Die App benötigt PostgreSQL mit pgvector und AGE. Das eigenständige Dockerfile baut nur das App-Image. Docker Compose ist der richtige Build Pack.

Port-Mapping

Standard-Mappings in Compose: 3000:3000 (App), 5432:5432 (Postgres). Ändere das in docker-compose.yaml, falls es auf deinem Host zu Konflikten kommt.

Ersteinrichtung

Der Compose-Stack wendet Migrationen nicht bei jedem Start automatisch an. Nach dem ersten docker compose up:

# Von einer Maschine mit Netzwerkzugriff auf die DB:
DATABASE_URL="postgres://eigen:eigen@<dein-host>:5432/eigen" npx drizzle-kit push --force
DATABASE_URL="postgres://eigen:eigen@<dein-host>:5432/eigen" node scripts/apply-rls.mjs

Oder aus dem App-Container heraus:

docker compose exec app npx drizzle-kit push --force
docker compose exec app node scripts/apply-rls.mjs

Produktionshärtung

Vor dem Live-Gang:

  1. Ändere alle Standard-Secrets (BETTER_AUTH_SECRET, TENANT_MASTER_KEY, DB-Passwörter).
  2. Setze ORIGIN auf deine tatsächliche Domain.
  3. Postgres-Port einschränken — entferne 5432:5432 aus Compose, damit die Datenbank nur intern erreichbar ist.
  4. Nutze ein echtes LLM-Gateway mit OpenAI-kompatiblen Endpunkten /api/v1/chat/completions und /api/v1/embeddings.
  5. Füge einen App-Healthcheck in compose.yaml hinzu:
app:
  healthcheck:
    test: ["CMD", "node", "-e", "fetch('http://localhost:3000/api/health').then(r => process.exit(r.ok?0:1))"]
    interval: 30s
    retries: 3
  1. Pinne bei Bedarf den Node.js-Image-Patch (node:22-bookworm-slim im eigen-Dockerfile).

Entwicklung (lokal, ohne Container)

Führe diese Befehle im eigen-Repository aus:

npm install
cp .env.example .env
npm run db:up      # nur den Postgres-Container starten
npm run dev        # SvelteKit-Dev-Server auf :5173

Datenbank-Lifecycle-Befehle

Alle folgenden Befehle werden im eigen-Repository ausgeführt:

Befehl Was er tut
npm run db:up Startet nur den db-Container
npm run db:down Stoppt alle Compose-Services
npm run db:reset Stoppt Services und löscht das DB-Volume (destruktiv)
npm run db:push Wendet das Drizzle-Schema an (interaktiv)
npm run db:push:force Wendet das Drizzle-Schema an (nicht interaktiv)
npm run db:rls Wendet Row-Level-Security-Policies an
npm run db:init db:push:force + db:rls
npm run stack:up Baut und startet alle Container
npm run stack:down Stoppt alle Container

Problembehandlung

Siehe Problembehandlung für Deployment-, LLM- und MCP-Probleme.

Nächste Schritte

Lizenz

Apache-2.0. Siehe LICENSE im eigen-Repository.

Weiter entdecken

Agenten-Hinweise

This documentation is published for humans and AI agents. Bevorzuge .md URLs für strukturierte Inhalte.

  • Index: /developers/llms.txt
  • Full export: /developers/llms-full.txt
  • Sitemap: /developers/sitemap.md
  • Raw page: append `.md` to any /developers/{slug} URL
  • Example: GET /developers/mcp-overview.md

Dynamic `?ask=` and `?goal=` query on markdown URLs is planned — see docs/planning/10-docs-query-api-design.md.