vault init
Legt einen neuen Vault an — Verzeichnisstruktur, Manifest, Registrierung in der Mount-Registry.
Häufigster Fall
apparat vault init recherche
Das legt den Vault recherche unter $APPARAT_VAULT_ROOT/recherche (Standard: ./vaults/recherche relativ zum Projekt) an. Die URL wird automatisch aus APPARAT_DEFAULT_VAULT_HOST abgeleitet (Standard: localhost), der Vault wird in der Mount-Registry registriert.
Output:
Vault initialised at /home/max/projects/apparat/vaults/recherche URL: https://localhost/vaults/recherche Name: recherche Mount registry: /home/max/.config/apparat/mounts.yaml
Pfad-Varianten
Das Pfad-Argument akzeptiert drei Formen:
# 1. Bare Name → unter APPARAT_VAULT_ROOT apparat vault init recherche # 2. Relativer Pfad (`./` oder `../`) apparat vault init ./notizen # 3. Absoluter Pfad apparat vault init /mnt/external/meine-recherche
Die bare-name-Variante ist die bequeme Standardnutzung; absolute Pfade sind für Vaults auf externen Laufwerken oder verschlüsselten Partitionen.
URL und Name überschreiben
Wenn dein Apparat-Server unter einer echten Domain erreichbar ist, willst du die Vault-URL darauf setzen, damit Cross-Vault-Links stabil bleiben:
apparat vault init recherche \ --url=https://apparat.example.com/vaults/recherche \ --name="Recherche 2026"
--url— die kanonische URL des Vaults. Muss mithttps://beginnen, darf keinen Query-String oder Fragment haben. Wenn weggelassen, wird sie ausAPPARAT_DEFAULT_VAULT_HOST+/vaults/+ Verzeichnisname gebildet.--name— der menschenlesbare Kurzname. Wenn weggelassen: der Verzeichnisname selbst.
Registrierung überspringen
Wenn du einen Vault anlegen willst, ohne dass er sofort in deiner Mount-Registry landet (z.B. für einen Testlauf oder ein einmaliges Skript):
apparat vault init ./tmp-vault --no-register
Der Vault-Ordner und sein Manifest werden geschrieben wie sonst, aber die Registry bleibt unberührt. Später manuell registrieren kannst du, indem du den Eintrag von Hand in ~/.config/apparat/mounts.yaml ergänzt oder den Vault löschst und ohne --no-register neu anlegst.
Was passiert dabei auf der Festplatte?
Nach einem erfolgreichen vault init foo findest du:
$APPARAT_VAULT_ROOT/foo/ ├── .apparat/ │ └── manifest.json ├── content/ └── assets/
content/ und assets/ sind leer. Das Manifest sieht so aus (Beispiel):
{ "url": "https://localhost/vaults/foo", "name": "foo", "created": "2026-04-21" }
In ~/.config/apparat/mounts.yaml ist jetzt ein neuer Eintrag:
mounts: - url: https://localhost/vaults/foo path: /home/max/projects/apparat/vaults/foo
Ab diesem Punkt ist der Vault für alle anderen apparat-Kommandos erreichbar.
Fehler
- „Target directory is not empty" — das Zielverzeichnis existiert zwar, ist aber nicht leer. Apparat überschreibt nichts; lösche das Verzeichnis oder wähle einen anderen Pfad.
- „already contains an Apparat vault" — genau dort liegt schon ein
.apparat/manifest.json. Entweder meintest du den bereits existierenden Vault, oder du willst ihn erst explizit löschen. - „Mount registry already contains URL" — die URL ist bereits für einen anderen Vault vergeben. URLs sind eindeutig; entweder verwende
--urlmit einer anderen Adresse oder überschreibe den bestehenden Eintrag (das ist bewusst kein Automatismus). - „Vault URL must use the https scheme" — Vault-URLs müssen
https://benutzen. Das ist eine harte Regel aus der Spec, nicht verhandelbar.