Journal-IndexDockup / Feldnotiz
Note / self-host-meilisearch

Meilisearch 2026 selbst hosten: Master Keys, Indizes und Dumps

Meilisearch mit den richtigen Ports, persistentem Speicher, HTTPS, Secrets, Backups und Upgrade-Prüfungen selbst hosten. Erfahre, wie du das Problem behebst, wenn MEILI_ENV auf development bleibt.

Meilisearch selbst zu hosten wird beim ersten Redeploy interessant, nicht beim ersten docker run. Wenn MEILI_ENV auf development bleibt oder das Daten-Volume bei einem Redeploy verloren geht, kann Docker weiterhin einen vollständig gesunden Prozess melden. Die folgende Bereitstellung orientiert sich am beobachtbaren Verhalten: einen Index erstellen, Dokumente importieren, filterbare Attribute konfigurieren und mit einer fehlertoleranten Suche sowie einem Filter nachweisen, dass die erwarteten Datensätze zurückgegeben werden.

Die vorgesehene Aufgabe von Meilisearch ist klar definiert: fehlertolerante Volltextsuche über eine schnelle HTTP API. Diese Beschreibung zeigt, was öffentlich erreichbar sein muss, was privat bleiben sollte und was ein Backup wiederherstellen können muss.

Meilisearch vor dem Docker-Einsatz analysieren

Trenne bei Meilisearch vier Bereiche: Ingress, den Listener auf 7700, den persistenten Zustand sowie unterstützende Services oder lokale Kapazitäten. Die lokale Laufzeitanforderung ist ein Datenträger, der für Indizes ausgelegt ist und zusätzlich Reserven für Rebuilds und Dumps bietet. Halte den Lebenszyklus explizit, damit ein Umzug von Meilisearch zwischen Hosts das Verhalten nicht unbemerkt verändert.

Führe die bekannte funktionierende Transaktion aus — einen Index erstellen, Dokumente importieren, filterbare Attribute konfigurieren und mit einer fehlertoleranten Suche sowie einem Filter nachweisen, dass die erwarteten Datensätze zurückgegeben werden — bevor du diese Trennung als abgeschlossen betrachtest. Miss den Speicherbedarf beim Batch-Indexing, den temporären Speicherplatz während des Indexaufbaus, die Dokumentanzahl und den gleichzeitigen Such-Traffic und dokumentiere das Ergebnis zusammen mit den Bereitstellungsdaten. Damit erhältst du sowohl ein Abnahmekriterium als auch eine erste Kapazitätsgrundlage.

Den Meilisearch-Start reproduzierbar machen

Verwende einen Befehl, der jede wichtige Entscheidung offenlegt. Diese Ausgangskonfiguration bindet Meilisearch an das Loopback-Interface des Hosts, fügt die bekannten Daten-Mounts hinzu und setzt die erste erforderliche Einstellung. Kläre die lokale Anforderung vor der Veröffentlichung: ein Datenträger, der für Indizes ausgelegt ist und zusätzlich Reserven für Rebuilds und Dumps bietet.

docker run -d \
  --name meilisearch \
  --restart unless-stopped \
  -p 127.0.0.1:7700:7700 \
  -v meilisearch-data:/meili_data \
  -e MEILI_MASTER_KEY=replace-with-a-long-random-value \
  getmeili/meilisearch:latest

Ersetze frei bewegliche Tags durch eine getestete Version oder einen Digest. Prüfe nach dem Start docker logs --tail 200 meilisearch und bestätige, dass der Prozess auf 7700 lauscht. Führe anschließend den Meilisearch-Abnahmeschritt aus; eine Antwort von der Root-Seite kann nicht belegen, dass das vollständige Szenario erfolgreich ist: einen Index erstellen, Dokumente importieren, filterbare Attribute konfigurieren und mit einer fehlertoleranten Suche sowie einem Filter nachweisen, dass die erwarteten Datensätze zurückgegeben werden.

Meilisearch eine kanonische Adresse geben

Behandle die externe Meilisearch-URL als Konfiguration, die Redeployments übersteht. Stelle die HTTP API zunächst über einen einzigen authentifizierten HTTPS-Origin bereit und leite den Hostnamen anschließend an Port 7700 weiter, wobei ursprünglicher Host und ursprüngliches Schema erhalten bleiben.

Mit der Checkliste zur Erreichbarkeit von Deployments kannst du nachweisen, dass Anfragen den Container erreichen. Danach sollte der bekannte Fehler — MEILI_ENV bleibt auf development oder das Daten-Volume geht bei einem Redeploy verloren — in Meilisearch, seinem Zustand oder seiner Workload untersucht werden, nicht in der Zertifikatsautomatisierung.

Meilisearch auf einem leeren Host wiederherstellen

Der dauerhafte Recovery-Bestand besteht aus geplanten Dumps oder Snapshots sowie dem persistenten Datenverzeichnis. Binde /meili_data vor dem Bootstrap ein, schreibe harmlose Beispieldaten und ersetze den Container, um nachzuweisen, dass dieser Pfad tatsächlich persistent ist. Ein Volume schützt Daten vor dem Ersetzen des Containers, jedoch nicht vor dem Verlust des Hosts, versehentlichem Löschen oder anwendungsseitiger Beschädigung.

Erstelle Backups, die die Datenquelle verstehen: Verwende bei Live-Datenbanken bei Bedarf logische Dumps und kopiere Dateien nur aus einem konsistenten Zustand. Bewahre eine verschlüsselte Kopie getrennt vom Meilisearch-Host auf. Das Abnahmekriterium für eine Wiederherstellung ist konkret — ein Dump lässt sich in einen sauberen Server mit denselben Einstellungen importieren, wobei Dokumentanzahl und repräsentatives Ranking übereinstimmen. Der Leitfaden für getestete Backups und Wiederherstellungen erklärt, warum ein erfolgreicher Job allein nicht ausreicht.

Den wertvollen Teil von Meilisearch schützen

Übernimm keine Sicherheitsannahmen aus einem lokalen Tutorial. Die spezifische Gefahr bei Meilisearch besteht darin, die Produktion ohne einen Master Key zu starten. In der Produktion sollte der Master Key daher für die Administration reserviert werden, während Browser-Suchclients eingeschränkte Search Keys erhalten.

Behandle MEILI_MASTER_KEY entsprechend seiner Meilisearch-Rolle: Halte sensible Werte aus Git heraus, dokumentiere die Auswirkungen einer Rotation und ersetze in der Produktion niemals ein öffentliches Beispiel. Begrenze Dateisystem- und Netzwerkzugriffe, schütze Setup-Endpunkte und definiere Limits für Uploads, Requests oder Ausführung rund um den Speicherbedarf beim Batch-Indexing, den temporären Speicherplatz während des Indexaufbaus, die Dokumentanzahl und den gleichzeitigen Such-Traffic.

Die Workload überwachen, nicht nur den Container

Kapazitätstests sollten den Speicherbedarf beim Batch-Indexing, den temporären Speicherplatz während des Indexaufbaus, die Dokumentanzahl und den gleichzeitigen Such-Traffic abdecken, nicht wiederholt nur eine Anfrage an / senden. Führe das Szenario „einen Index erstellen, Dokumente importieren, filterbare Attribute konfigurieren und mit einer fehlertoleranten Suche sowie einem Filter nachweisen, dass die erwarteten Datensätze zurückgegeben werden“ bei realistischer Parallelität aus und protokolliere Latenz, Fehlerrate und Speicherwachstum.

Bei der Upgrade-Planung muss dieses Risiko berücksichtigt werden: Die Kompatibilität von Meilisearch-Dumps und die Anforderungen an den Index-Rebuild müssen vor einem Versionswechsel geprüft werden. Teste das neue Release mit repräsentativen Eingabedaten, führe anschließend die Abnahmetransaktion erneut aus und vergleiche das Ergebnis. Wenn MEILI_ENV auf development bleibt oder das Daten-Volume bei einem Redeploy verloren geht, erfasse die fehlschlagende Transaktion und untersuche die erste betroffene Grenze, statt automatisch den Ingress verantwortlich zu machen.

Den Meilisearch-Smoke-Test zur Release-Prüfung machen

Definiere für Meilisearch vor dem Launch eine bekannte funktionierende Transaktion: einen Index erstellen, Dokumente importieren, filterbare Attribute konfigurieren und mit einer fehlertoleranten Suche sowie einem Filter nachweisen, dass die erwarteten Datensätze zurückgegeben werden. Lege Voraussetzungen, erwartete Antwort und Bereinigungsschritte ohne Secret-Werte in der Versionsverwaltung ab. Pinne das Image, mit dem diese Referenz erstellt wird.

Verwende die Transaktion, um sowohl einen Austausch als auch eine unabhängige Wiederherstellung zu validieren. Der wiederhergestellte Service ist nur dann akzeptabel, wenn sich ein Dump in einen sauberen Server mit denselben Einstellungen importieren lässt und Dokumentanzahl sowie repräsentatives Ranking übereinstimmen. Beobachte gleichzeitig den Speicherbedarf beim Batch-Indexing, den temporären Speicherplatz während des Indexaufbaus, die Dokumentanzahl und den gleichzeitigen Such-Traffic und mache den langsamsten oder am stärksten begrenzten Teil zu einem Service-Level-Alert.

Der Gate benötigt außerdem einen Negativfall: Übermittle harmlose Eingaben nahe am Ressourcen- oder Formatlimit, das mit dieser Grenze verbunden ist: MEILI_ENV bleibt auf development oder das Daten-Volume geht bei einem Redeploy verloren. Bestätige, dass Meilisearch einen verwertbaren Fehler erzeugt und dabei die Daten erhält, stelle den gültigen Zustand wieder her und wiederhole die bekannte funktionierende Transaktion. Wenn beide Ergebnisse erhalten bleiben, kann ein oberflächlicher Health-Endpunkt nicht zum einzigen Produktionsnachweis werden.

Meilisearch explizit halten, während Dockup das Routing übernimmt

Das One-Click-Meilisearch-Deployment von Dockup sollte einen sicheren Austausch ermöglichen: Die Route zeigt weiterhin auf 7700, Secrets werden nicht in das Image eingebaut und persistente Pfade stehen im neuen Container wieder zur Verfügung. Dasselbe Deployment kann auf Dockup Compute oder einer verbundenen Maschine ausgeführt werden.

Schließe die anwendungsspezifischen Arbeiten ab, indem du die lokale Anforderung bestätigst — ein Datenträger, der für Indizes ausgelegt ist und zusätzlich Reserven für Rebuilds und Dumps bietet —, die kanonische öffentliche Adresse anwendest und diese Abnahmeprüfung ausführst: einen Index erstellen, Dokumente importieren, filterbare Attribute konfigurieren und mit einer fehlertoleranten Suche sowie einem Filter nachweisen, dass die erwarteten Datensätze zurückgegeben werden. Ergänze das Ergebnis der Wiederherstellung im Runbook, bevor echte Benutzer zugreifen.

Häufig gestellte Fragen

Was benötigt Meilisearch für ein produktives Deployment?

Leite den Meilisearch-Container auf Port 7700 über einen einzigen HTTPS-Origin weiter. Die lokale Laufzeitanforderung ist ein Datenträger, der für Indizes ausgelegt ist und zusätzlich Reserven für Rebuilds und Dumps bietet. Betrachte Meilisearch erst dann als bereit, wenn du einen Index erstellen, Dokumente importieren, filterbare Attribute konfigurieren und mit einer fehlertoleranten Suche sowie einem Filter nachweisen kannst, dass die erwarteten Datensätze zurückgegeben werden.

Welche Meilisearch-Daten gehören in ein Backup?

Persistiere /meili_data und nimm geplante Dumps oder Snapshots sowie das persistente Datenverzeichnis in dasselbe Recovery-Manifest auf. Eine saubere Meilisearch-Wiederherstellung ist nur dann erfolgreich, wenn sich ein Dump in einen sauberen Server mit denselben Einstellungen importieren lässt und Dokumentanzahl sowie repräsentatives Ranking übereinstimmen.

Benötigt Meilisearch HTTPS hinter einem Reverse Proxy?

Verwende HTTPS für den öffentlichen Meilisearch-Origin und halte Port 7700 in der internen Route. Wende die Meilisearch-Einstellung korrekt an: Stelle die HTTP API über einen einzigen authentifizierten HTTPS-Origin bereit. Bei Meilisearch schützt HTTPS Zugangsdaten oder Benutzerinhalte während der Übertragung und sorgt für ein konsistentes, vom Origin abhängiges Verhalten der Clients.

Wie sollte ein Meilisearch-Upgrade getestet werden?

Stelle den aktuellen Meilisearch-Zustand in einem isolierten Deployment wieder her, wende die geplante Version an und wiederhole die Abnahmetransaktion. Achte besonders darauf, da die Kompatibilität von Meilisearch-Dumps und die Anforderungen an den Index-Rebuild vor einem Versionswechsel geprüft werden müssen. Behalte das bisherige Meilisearch-Image, bis die Grenzen für Datenmigration und Rollback verstanden sind.