Den Crunu-Server mit Docker Compose betreiben
Den Crunu-Server mit Docker Compose auf der eigenen Maschine hosten: Caddy für automatisches TLS oder Cloudflare Tunnel ohne offene Ports, SQLite oder Postgres.
- Unterstützung
- Funktioniert heute mit Crunu: Die Unterstützung für Docker ist Teil des Produkts.
- Crunu-Funktionen
- Self-Hosting und Verschlüsselter Tresor
- Geprüft
- Mit Crunu 6.0.0 am 28. Oktober 2026
Crunu-Funktionen, die mit Docker funktionieren
Jede Funktion unten arbeitet in jeder Integration gleich: Der Server bewahrt Chiffretext auf, und nur die Menschen, Maschinen und Tokens, denen Sie Zugriff gewähren, können entschlüsseln.
Self-Hosting
Betreiben Sie denselben Crunu-Server auf Ihrem eigenen Docker-Host, auf Cloudflare Workers, Vercel oder Google Cloud Run, und ziehen Sie mit einem Archiv zwischen ihnen um.
Mehr erfahren
Verschlüsselter Tresor
Bewahren Sie .env-Dateien, Cloud-Zugangsdaten und API-Schlüssel in Projekten und Umgebungen auf, verschlüsselt auf Ihren Geräten, bevor irgendetwas den Server erreicht.
Mehr erfahren
So funktioniert es mit Docker
Auf dieser Seite
Was Crunu mit Docker tut
Crunu läuft in der Cloud auf app.crunu.com, die meisten Teams deployen also nie einen Server. Möchten Sie ihn lieber auf Ihrer eigenen Maschine haben, bringt der Server eine Konfiguration für Docker Compose mit: den Server-Container und dazu Caddy, das das TLS-Zertifikat für Ihre Domain selbst ausstellt.
Der Server ist blind, wo immer er läuft. Seine Datenbank enthält Chiffretext, öffentliche Schlüssel, signierte Dokumente und Metadaten, und er hat keinen Schlüssel, der einen Wert entschlüsselt. Wie sich die Optionen unterscheiden, steht auf der Seite zum Self-Hosting.
Was Sie brauchen
- Eine Maschine mit Docker und eine Domain mit einem A- oder AAAA-Eintrag, der auf sie zeigt.
- Offene Ports 80 und 443, damit Caddy ein Zertifikat bekommt.
- Node.js 24 und die Dateien des Crunu-Servers auf dieser Maschine. Die Befehle unten laufen im Verzeichnis des Servers.
Den Server starten
Wählen Sie die Adresse des Servers einmal. Anmeldesignaturen, Freigabelinks, Passkeys und registrierte Maschinen sind alle an sie gebunden, und auch ein späterer Umzug auf eine andere Plattform behält dieselbe Adresse.
node scripts/server-init.mjs --origin https://vault.company.example --out deploy/docker/.env
docker compose -f deploy/docker/compose.yml up -d --buildserver-init schreibt eine Datei .env mit den Rechten 0600 und neuen Werten für SERVER_KEY, BOOTSTRAP_TOKEN und CRON_SECRET. Speichern Sie sofort eine Kopie davon in einem Passwortmanager: Ohne sie lässt sich der Server nicht wiederherstellen. Die Datenbank ist standardmäßig SQLite in einem Docker-Volume. Für Postgres neben dem Server führen Sie server-init mit --docker-postgres aus.
Prüfen Sie danach das Deployment und legen Sie mit dem Bootstrap-Schlüssel aus .env den ersten Owner an:
node scripts/doctor.mjs https://vault.company.exampleCloudflare Tunnel statt offener Ports
Der Server kann das Internet auch über einen Cloudflare Tunnel erreichen. Auf der Maschine wird nichts veröffentlicht, cloudflared verbindet sich direkt mit dem Server, und Cloudflare terminiert TLS. Legen Sie das Token des Tunnels in deploy/docker/.env ab, richten Sie den öffentlichen Hostnamen des Tunnels auf den Dienst server:8080 aus und fügen Sie die Tunnel-Datei zur Hauptdatei hinzu:
docker compose -f deploy/docker/compose.yml -f deploy/docker/compose.tunnel.yml up -d --buildDie Tunnel-Datei gibt cloudflared eine feste Adresse in einem eigenen Docker-Netzwerk, und der Server vertraut dem Header mit der Clientadresse nur von dieser Adresse. So sehen Netzwerkbeschränkungen die echte Clientadresse.
Wie der Container läuft
Die Compose-Konfiguration betreibt den Server mit schreibgeschütztem Root-Dateisystem, ohne Linux-Capabilities und mit einem unprivilegierten Benutzer, und es ist getestet, dass er auf derselben Datenbank neu startet. Schemamigrationen führt der Server beim Start selbst aus. Ein Update ist dasselbe docker compose … up -d --build, nachdem Sie die neue Version geholt haben.
Das Image enthält einen fertigen Web-Client aus dist/web/. Fehlt dieses Verzeichnis oder enthält es eine andere Version als der Server, bricht der Build ab, statt selbst einen unsignierten Web-Client zu bauen.
Backups und Umzug
crunu-server export schreibt die ganze Datenbank in ein Archiv ohne Klartextwerte, und crunu-server import lädt es in eine leere Datenbank auf jeder unterstützten Plattform: Docker, Cloudflare Workers, Vercel oder Google Cloud Run. Behalten Sie dieselbe .env und dieselbe Adresse, dann ändert sich nur der DNS-Eintrag.
Dieses Archiv zieht einen Server um, den Sie betreiben. Der Umzug von app.crunu.com auf Ihren eigenen Server ist kein einzelner Schritt, denn nur der Betreiber hat Zugriff auf die Datenbank in der Cloud. Exportieren Sie jede Umgebung als .env-Datei oder laden Sie eine Offline-Kopie herunter und fügen Sie die Dateien dann Ihrem Server hinzu. Verlauf, Zugriffseinstellungen und Audit-Log werden auf diesem Weg nicht übernommen.
Der Agent crunu in Containern
Das Installationsskript des Agenten crunu hat einen Modus ohne Root für CI und Container. Es ist in den Images node:24, Ubuntu 24.04 und Alpine 3.22 getestet. In CI und anderen kurzlebigen Containern arbeitet crunu mit einem Service-Token: Es meldet sich an und entschlüsselt innerhalb seines eigenen Prozesses, ohne Zustandsdateien. Ein minimales Image ohne ca-certificates kann das Zertifikat des Servers nicht prüfen, und crunu sagt Ihnen, welches Paket zu installieren ist.
Der Hintergrunddienst des Agenten braucht systemd und läuft auf Linux-Hosts. Siehe systemd.
Weiterführend
Fragen aus der Praxis
Nicht dabei? Schreiben Sie an support@crunu.com, und ein Mensch antwortet.
Wo bekomme ich den Server?
Der Server wird nicht als öffentlicher Download angeboten. Schreiben Sie an support@crunu.com.
Welche Datenbank verwendet er?
Standardmäßig SQLite in einem Docker-Volume, oder Postgres neben dem Server.
Kann ich offene Ports vermeiden?
Ja. Betreiben Sie ihn hinter Cloudflare Tunnel mit der Compose-Datei für den Tunnel, dann terminiert Cloudflare TLS.
Kann ich von app.crunu.com auf meinen eigenen Server umziehen?
Nicht in einem Schritt. Exportieren Sie jede Umgebung als .env-Datei oder laden Sie eine Offline-Kopie herunter. Verlauf, Zugriffseinstellungen und Audit-Log werden auf diesem Weg nicht übernommen.