Installation und Start
Notarium wird als ein einziges, in sich geschlossenes Image ausgeliefert: Ein Prozess bedient die Weboberfläche, die REST-API und den MCP-Endpunkt für Agenten, während die Wissens-Engine direkt darin läuft. Externe Dienste — keine Datenbank, kein Message-Broker, keine separate Suchmaschine — braucht es nicht. Für den Start genügen Docker und ein freier Port.
Diese Seite ist der schnelle Weg: eine Instanz hochfahren, im Browser öffnen und den Owner anlegen. Das ausführliche Self-Hosting (Postgres, Reverse-Proxy, Produktionskonfiguration) findet sich im Abschnitt Self-Hosting.
Was du brauchst
- Docker (oder Docker Desktop) — mehr ist nicht zu installieren: Node, die Datenbank und der Suchindex stecken bereits im Image.
- Einen freien Port — standardmäßig 3000.
- Etwas Speicherplatz für deine Notizen und den abgeleiteten Index.
Start mit einem einzigen Container
Der kürzeste Weg ist, das fertige Image docouno/notarium zu starten:
docker run -d --name notarium \
-p 3000:3000 \
-v notarium-data:/data \
docouno/notarium:latest
Öffne nach ein paar Sekunden http://localhost:3000.
Ein einziges Volume /data hält den gesamten Zustand — die Metadaten-Datenbank, die Indizes, deine Notizen und die Export-Artefakte. Mehr ist nicht zu konfigurieren: Port 3000 und der Pfad /data sind bereits im Image hinterlegt. Den Port links von 3000 kannst du auf jeden beliebigen freien Port ändern.
Falls das Image noch nicht aus der Registry gezogen wurde, bau es im Haupt-Repository von Notarium aus dem Quellcode mit make up (siehe unten): Das Verhalten ist identisch.
Alternativ baust du aus dem Quellcode über make, den zentralen Einstiegspunkt für alles rund um Docker:
cp .env.example .env # die Defaults funktionieren — nichts auszufüllen
make up # das Prod-Image bauen und hochfahren → http://localhost:3000
Für den täglichen Betrieb sind weitere Befehle praktisch: make logs für Logs, make ps für den Status, make down zum Stoppen und Entfernen, make sh für eine Shell im Container.
Volumes: wo die Daten liegen
Der gesamte Zustand liegt in einem einzigen Volume — genau das musst du beim Neuanlegen des Containers bewahren:
| Volume | Mount-Punkt | Was es speichert |
|---|---|---|
notarium-data | /data | Alles: deine Notizen (/data/spaces), die Metadaten-Datenbank (/data/meta.db), die abgeleiteten Suchindizes (/data/engine) und die Export-Artefakte (/data/jobs) |
Das Leitprinzip ist file-first: Die Quelle der Wahrheit sind die .md-Dateien in /data/spaces. Die Suchindizes und der Graph in /data/engine sind abgeleitet: Sie werden aus den Dateien neu aufgebaut, gehen sie also verloren, holt ein Reindex sie zurück. Die Metadaten-Datenbank /data/meta.db — Versionsverlauf, Benutzer und Zugriffe — existiert nur im Volume, deshalb verdient /data dieselbe Sorgfalt wie deine Notizen. Für Backups brauchst du nur deine Notizen und meta.db; die abgeleiteten Indizes kannst du weglassen.
Ändere den Port 3000 über die linke Seite von -p <deiner>:3000 (oder über die Variable PORT in .env). Das Image lauscht auf allen Interfaces des Containers — nach außen gibt es genau das frei, was du mappst.
Erster Start: der Setup-Bildschirm
Beim ersten Besuch begrüßt dich Notarium mit einem Setup-Bildschirm. Es gibt kein voreingestelltes Passwort: Der erste Besucher legt den Owner der Instanz an — dieses Konto wird zum Administrator und zum Eigentümer der Spaces, die es erstellt. Danach schließt sich das Setup für immer, und du landest im Editor, bereits in deinem persönlichen Space.
So funktioniert der Standard-Authentifizierungsmodus — AUTH_MODE=password. Er ist für eine öffentlich erreichbare Instanz gedacht: Login, Sessions, persönliche Tokens für Agenten. Der zweite Modus, none (ein einziger Principal mit Vollzugriff, kein Login-Bildschirm), passt nur in eine vertrauenswürdige Umgebung: ein Desktop, lokale Entwicklung oder ein geschlossenes Intranet. Die Details stehen im Abschnitt Authentifizierung.
Grundkonfiguration
Die Defaults sind Zero-Config: Das Image genügt so, wie es ist, für den Start. Die Feinabstimmung läuft über Umgebungsvariablen (in Docker reicht .env sie durch; ins Image wird nichts eingebacken):
| Variable | Wert | Default |
|---|---|---|
PORT | Der Port, auf dem der Server lauscht | 3000 |
AUTH_MODE | password (Login + Setup) oder none (vertrauenswürdige Umgebung) | password |
VECTOR_SEARCH | Semantische (Vektor-)Suche zusätzlich zur lexikalischen aktivieren | off im Image |
Die Volltextsuche funktioniert immer und ohne Konfiguration. Die semantische (Vektor-)Suche wird bei Bedarf über das Flag VECTOR_SEARCH=on aktiviert: Sie zieht ein lokales Embeddings-Modell heran (in der Größenordnung von einigen hundert Megabyte RAM), deshalb ist sie im veröffentlichten Image deaktiviert und wird bewusst eingeschaltet. Ohne sie durchsucht die Suche weiterhin den vollen Text — ohne Fehler, das ist der Normalbetrieb. Die vollständige Liste der Variablen und das Einrichten der Suche stehen in den Abschnitten Konfiguration und Suche einrichten.
Nächste Schritte
Die Instanz läuft und der Owner ist angelegt — Zeit, deine Wissensbasis zu füllen und sie einem Agenten zu öffnen:
- Deine erste Notiz — der Dateibaum, der Web-Editor und das Speichern als
.md. - Einen Agenten verbinden — das Token, der Endpunkt
POST /mcpund der erste Aufruf.
Willst du das gesamte Modell verstehen? Wirf einen Blick in den Abschnitt Konzepte: Spaces, Notiztypen, den Graphen und das Zugriffsmodell.