Rejstřík deníkuDockup / terénní poznámka
Note / self-host-meilisearch

Jak hostovat Meilisearch na vlastním serveru v roce 2026: hlavní klíče, indexy a dumpy

Hostujte Meilisearch na vlastním serveru se správně nastavenými porty, perzistentním úložištěm, HTTPS, tajnými hodnotami, zálohami a kontrolami upgradu. Naučte se opravit situaci, kdy MEILI_ENV zůstává nastavené na development.

Provozování Meilisearch na vlastním serveru začne být zajímavé při prvním redeployi, nikoli při prvním docker run. Pokud MEILI_ENV zůstane nastavené na development nebo se při redeployi ztratí datový volume, Docker může stále hlásit zcela zdravý proces. Níže uvedené nasazení je postavené na pozorovatelném chování: vytvoření indexu, import dokumentů, nastavení atributů použitelných pro filtrování a ověření, že dotaz tolerantní k překlepům a filtr vrátí očekávané záznamy.

Účel Meilisearch je jasný: fulltextové vyhledávání tolerantní k překlepům s rychlým HTTP API. Z tohoto popisu vyplývá, co musí zůstat veřejné, co má zůstat soukromé a co musí záloha obnovit.

Zmapujte Meilisearch před použitím Dockeru

U Meilisearch oddělte čtyři oblasti: ingress, listener na portu 7700, trvalý stav a podpůrné služby nebo lokální kapacitu. Lokálním požadavkem na runtime je disk s kapacitou pro indexy a rezervou pro jejich znovuvytváření a dumpy. Životní cyklus udržujte explicitní, aby přesun Meilisearch mezi servery potají nezměnil jeho chování.

Než toto oddělení označíte za dokončené, spusťte ověřený scénář — vytvoření indexu, import dokumentů, nastavení atributů použitelných pro filtrování a ověření, že dotaz tolerantní k překlepům a filtr vrátí očekávané záznamy. Změřte paměť při dávkovém indexování, dočasné místo na disku během vytváření indexů, počet dokumentů a počet souběžných vyhledávacích požadavků a výsledek uložte společně se záznamem o nasazení. Získáte tím akceptační kritérium i první základ pro plánování kapacity.

Zajistěte reprodukovatelný start Meilisearch

Použijte příkaz, který zpřístupní všechny důležité volby. Tento základní příklad váže Meilisearch na loopback hostitele, přidává známé mounty dat a předává první požadované nastavení. Před zpřístupněním ověřte lokální požadavek: disk s kapacitou pro indexy a rezervou pro jejich znovuvytváření a dumpy.

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

Plovoucí tagy nahraďte otestovanou verzí nebo digestem. Po spuštění zkontrolujte docker logs --tail 200 meilisearch a ověřte, že proces naslouchá na portu 7700. Poté spusťte akceptační kontrolu Meilisearch; odpověď z kořenové stránky nemůže prokázat úspěch celého scénáře: vytvoření indexu, import dokumentů, nastavení atributů použitelných pro filtrování a ověření, že dotaz tolerantní k překlepům a filtr vrátí očekávané záznamy.

Dejte Meilisearch jednu kanonickou adresu

Externí URL Meilisearch považujte za konfiguraci, která přežije redeploy. Nejprve zpřístupněte HTTP API přes jeden autentizovaný HTTPS origin a poté směrujte hostname na port 7700 se zachováním původního hostitele a schématu.

Kontrolní seznam dostupnosti nasazení může prokázat, že požadavky vstupují do kontejneru. Od tohoto okamžiku je třeba známý problém — MEILI_ENV zůstává nastavené na development nebo se při redeployi ztratí datový volume — hledat v Meilisearch, jeho stavu nebo zátěži, nikoli v automatizaci certifikátů.

Obnovte Meilisearch na prázdném serveru

Sada pro spolehlivé obnovení se skládá z plánovaných dumpů nebo snapshotů a perzistentního datového adresáře. Před bootstrapem připojte /meili_data, zapište neškodná ukázková data a nahraďte kontejner, abyste ověřili, že je tato cesta skutečně perzistentní. Volume chrání data před nahrazením kontejneru, nikoli však před ztrátou hostitele, náhodným smazáním nebo poškozením na úrovni aplikace.

Vytvářejte zálohy s ohledem na zdroj dat: u živých databází podle potřeby používejte logické dumpy a soubory kopírujte pouze z konzistentního stavu. Jednu šifrovanou kopii uchovávejte mimo hostitele Meilisearch. Akceptační kritérium obnovy musí být konkrétní — dump se importuje do čistého serveru se stejným nastavením, počtem dokumentů a reprezentativním pořadím výsledků. Příručka k zálohám ověřeným obnovou vysvětluje, proč samotný úspěch úlohy nestačí.

Chraňte cennou část Meilisearch

Nepřebírejte bezpečnostní předpoklady z lokálního tutoriálu. Specifickým problémem Meilisearch je spuštění produkce bez hlavního klíče. Produkce by proto měla hlavní klíč vyhradit pro administraci a klientům pro vyhledávání v prohlížeči poskytovat omezené vyhledávací klíče.

S MEILI_MASTER_KEY zacházejte podle jeho role v Meilisearch: citlivé hodnoty uchovávejte mimo Git, zdokumentujte dopady rotace a v produkci nikdy nenahrazujte skutečnou hodnotu veřejným příkladem. Omezte přístup k souborovému systému a síti, chraňte endpointy pro nastavení a definujte limity uploadu, požadavků nebo spouštění s ohledem na paměť při dávkovém indexování, dočasné místo na disku během vytváření indexů, počet dokumentů a počet souběžných vyhledávacích požadavků.

Sledujte zátěž, ne pouze kontejner

Testy kapacity by měly ověřovat paměť při dávkovém indexování, dočasné místo na disku během vytváření indexů, počet dokumentů a počet souběžných vyhledávacích požadavků, nikoli opakované volání /. Spusťte scénář „vytvoření indexu, import dokumentů, nastavení atributů použitelných pro filtrování a ověření, že dotaz tolerantní k překlepům a filtr vrátí očekávané záznamy“ při realistické souběžnosti a zaznamenejte latenci, chybovost a růst úložiště.

Plánování upgradu musí zohlednit toto riziko: před změnou verzí je nutné ověřit kompatibilitu dumpů Meilisearch a požadavky na znovuvytvoření indexů. Otestujte novou verzi s reprezentativními vstupy, poté zopakujte akceptační scénář a porovnejte výsledek. Pokud MEILI_ENV zůstává nastavené na development nebo se při redeployi ztratí datový volume, zachyťte selhávající scénář a prozkoumejte první zapojenou hranici místo předpokladu, že problém souvisí s ingressem.

Proměňte smoke test Meilisearch v kontrolu releasu

Pro Meilisearch definujte před spuštěním ověřený scénář: vytvoření indexu, import dokumentů, nastavení atributů použitelných pro filtrování a ověření, že dotaz tolerantní k překlepům a filtr vrátí očekávané záznamy. Jeho předpoklady, očekávanou odpověď a kroky úklidu uložte do version control bez tajných hodnot. Image použitý k vytvoření této referenční konfigurace připněte na konkrétní verzi.

Scénář použijte k ověření náhrady i nezávislé obnovy. Obnovená služba je přijatelná pouze tehdy, když se dump importuje do čistého serveru se stejným nastavením, počtem dokumentů a reprezentativním pořadím výsledků. Současně sledujte paměť při dávkovém indexování, dočasné místo na disku během vytváření indexů, počet dokumentů a počet souběžných vyhledávacích požadavků a nejpomalejší nebo nejvíce omezenou část převeďte na alert na úrovni služby.

Kontrola musí zahrnovat také negativní případ: odešlete neškodný vstup poblíž limitu prostředků nebo formátu spojeného s touto hranicí: MEILI_ENV zůstává nastavené na development nebo se při redeployi ztratí datový volume. Ověřte, že Meilisearch vytvoří použitelnou chybovou zprávu a přitom zachová data, obnovte platný stav a zopakujte ověřený scénář. Uchování obou výsledků zabrání tomu, aby se povrchní health endpoint stal jediným důkazem funkčnosti v produkci.

Nechte Meilisearch explicitní, zatímco Dockup řeší routing

Nasazení Meilisearch jedním kliknutím v Dockup by mělo zajistit bezpečnou náhradu: route bude i nadále směřovat na port 7700, tajné hodnoty nebudou zabudované v image a perzistentní cesty se vrátí v novém kontejneru. Stejné nasazení může běžet na výpočetní infrastruktuře Dockup nebo na připojeném stroji.

Dokončete práci specifickou pro aplikaci ověřením lokálního požadavku — disk s kapacitou pro indexy a rezervou pro jejich znovuvytváření a dumpy —, použitím kanonické veřejné adresy a spuštěním této akceptační kontroly: vytvořte index, importujte dokumenty, nastavte atributy použitelné pro filtrování a ověřte, že dotaz tolerantní k překlepům a filtr vrátí očekávané záznamy. Výsledek obnovy přidejte do runbooku ještě před příchodem skutečných uživatelů.

Často kladené otázky

Co Meilisearch potřebuje pro produkční nasazení?

Směrujte kontejner Meilisearch na portu 7700 přes jeden HTTPS origin. Lokálním požadavkem na runtime je disk s kapacitou pro indexy a rezervou pro jejich znovuvytváření a dumpy. Meilisearch neoznačujte za připravený, dokud nedokážete vytvořit index, importovat dokumenty, nastavit atributy použitelné pro filtrování a ověřit, že dotaz tolerantní k překlepům a filtr vrátí očekávané záznamy.

Která data Meilisearch patří do zálohy?

Zachovejte /meili_data a do stejného manifestu pro obnovu zahrňte plánované dumpy nebo snapshoty i perzistentní datový adresář. Čistá obnova Meilisearch je úspěšná pouze tehdy, když se dump importuje do čistého serveru se stejným nastavením, počtem dokumentů a reprezentativním pořadím výsledků.

Vyžaduje Meilisearch za reverse proxy HTTPS?

Pro veřejný origin Meilisearch používejte HTTPS a port 7700 ponechte na interní route. Nastavení Meilisearch aplikujte správně: HTTP API zpřístupněte přes jeden autentizovaný HTTPS origin. U Meilisearch HTTPS chrání přihlašovací údaje nebo uživatelský obsah během přenosu a zachovává konzistentní chování klienta závislé na originu.

Jak testovat upgrade Meilisearch?

Obnovte aktuální stav Meilisearch do izolovaného nasazení, použijte kandidátní verzi a zopakujte akceptační scénář. Věnujte zvláštní pozornost tomu, že před změnou verzí je nutné ověřit kompatibilitu dumpů Meilisearch a požadavky na znovuvytvoření indexů. Předchozí image Meilisearch ponechte k dispozici, dokud nebudete rozumět hranici migrace dat a rollbacku.