---
title: "Installation und Start"
description: "Notarium mit einem einzigen Docker-Container starten, unter localhost:3000 öffnen und den Setup-Bildschirm durchlaufen, der den Owner anlegt."
---

# 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](/docs/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:

```bash
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.

> [!note] Aus dem Quellcode bauen
> 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:

```bash
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.

> [!tip] Dein eigener Port
> Ä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](/docs/self-hosting/authentication/).

## 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](/docs/self-hosting/configuration/) und [Suche einrichten](/docs/self-hosting/search-setup/).

## 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](/docs/getting-started/first-note/) — der Dateibaum, der Web-Editor und das Speichern als `.md`.
- [Einen Agenten verbinden](/docs/getting-started/connect-agent/) — das Token, der Endpunkt `POST /mcp` und der erste Aufruf.

Willst du das gesamte Modell verstehen? Wirf einen Blick in den Abschnitt [Konzepte](/docs/concepts/): Spaces, Notiztypen, den Graphen und das Zugriffsmodell.
