Cum să găzduiești Meilisearch în 2026: master keys, indexuri și dump-uri
Găzduiește Meilisearch pe propria infrastructură cu porturile corecte, stocare persistentă, HTTPS, secrete, backupuri și verificări la upgrade. Află cum remediezi situațiile în care MEILI_ENV rămâne setat la development.
Găzduirea proprie a Meilisearch devine relevantă la primul redeploy, nu la primul docker run. Dacă MEILI_ENV rămâne setat la development sau volumul de date se pierde în timpul unui redeploy, Docker poate raporta în continuare un proces perfect sănătos. Implementarea de mai jos este organizată în jurul unui comportament observabil: creează un index, importă documente, configurează atributele filtrabile și demonstrează că o interogare tolerantă la greșeli de scriere și un filtru returnează înregistrările așteptate.
Scopul Meilisearch este clar: căutare full-text tolerantă la greșeli de scriere, cu un HTTP API rapid. Această descriere ne arată ce trebuie să rămână public, ce ar trebui să rămână privat și ce trebuie să poată reconstrui un backup.
Cartografiază Meilisearch înainte să atingi Docker
Separă patru aspecte în cazul Meilisearch: ingress, listenerul de pe 7700, starea persistentă și serviciile auxiliare sau capacitatea locală. Cerința locală de runtime este un spațiu pe disc dimensionat pentru indexuri, plus o rezervă pentru rebuild-uri și dump-uri. Păstrează ciclul de viață explicit, astfel încât mutarea Meilisearch între hosturi să nu schimbe comportamentul în mod silențios.
Rulează tranzacția validată — creează un index, importă documente, configurează atributele filtrabile și demonstrează că o interogare tolerantă la greșeli de scriere și un filtru returnează înregistrările așteptate — înainte de a considera separarea finalizată. Măsoară memoria utilizată la indexarea în batch, spațiul temporar pe disc în timpul construirii indexurilor, numărul de documente și traficul concurent de căutare și păstrează rezultatul împreună cu înregistrarea deploymentului. Acesta oferă atât un criteriu de acceptare, cât și primul baseline de capacitate.
Fă pornirea Meilisearch reproductibilă
Folosește o comandă care expune fiecare alegere importantă. Această configurație de bază leagă Meilisearch de loopback-ul hostului, adaugă mount-urile de date cunoscute și furnizează prima setare necesară. Confirmă cerința locală înainte de expunere: un spațiu pe disc dimensionat pentru indexuri, plus o rezervă pentru rebuild-uri și dump-uri.
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
Înlocuiește tagurile floating cu o versiune testată sau cu un digest. După pornire, verifică docker logs --tail 200 meilisearch și confirmă că procesul ascultă pe 7700. Apoi execută acțiunea de acceptare pentru Meilisearch; un răspuns de la root page nu poate demonstra că întregul scenariu reușește: creează un index, importă documente, configurează atributele filtrabile și demonstrează că o interogare tolerantă la greșeli de scriere și un filtru returnează înregistrările așteptate.
Oferă-i lui Meilisearch o adresă canonică
Tratează URL-ul extern al Meilisearch ca pe o configurație care supraviețuiește redeploy-urilor. Mai întâi servește HTTP API-ul printr-un singur origin HTTPS autentificat; apoi direcționează hostname-ul către portul 7700, păstrând intacte hostul și schema originale.
Lista de verificare pentru reachability a deploymentului poate demonstra că requesturile ajung în container. După acest punct, problema cunoscută — MEILI_ENV rămâne setat la development sau volumul de date se pierde în timpul unui redeploy — ar trebui investigată în Meilisearch, în starea sa sau în workload, nu în automatizarea certificatelor.
Restaurează Meilisearch pe un host gol
Setul de recuperare persistentă este alcătuit din dump-uri sau snapshot-uri programate, împreună cu directorul de date persistent. Montează /meili_data înainte de bootstrap, scrie date de test inofensive și înlocuiește containerul pentru a demonstra că acea cale este într-adevăr persistentă. Un volum protejează datele împotriva înlocuirii containerului, dar nu și împotriva pierderii hostului, ștergerii accidentale sau coruperii la nivelul aplicației.
Realizează backupuri care înțeleg sursa datelor: folosește dump-uri logice pentru bazele de date live, atunci când este necesar, și copiază fișiere doar dintr-o stare consistentă. Păstrează o copie criptată în afara hostului Meilisearch. Criteriul de acceptare pentru o restaurare este specific — un dump se importă pe un server curat cu aceleași setări, același număr de documente și același ranking reprezentativ. Ghidul pentru backupuri testate prin restaurare explică de ce succesul jobului nu este suficient.
Protejează partea valoroasă din Meilisearch
Nu moșteni presupunerile de securitate dintr-un tutorial local. Problema specifică Meilisearch este pornirea în production fără un master key. Prin urmare, production ar trebui să păstreze master key-ul pentru administrare și să ofere clienților de căutare din browser search keys cu permisiuni restricționate.
Tratează MEILI_MASTER_KEY în funcție de rolul său în Meilisearch: păstrează valorile sensibile în afara Git, documentează efectele rotației și nu înlocui niciodată un exemplu public în production. Limitează accesul la filesystem și rețea, protejează endpointurile de setup și definește limite pentru upload, request sau execuție în jurul memoriei utilizate la indexarea în batch, spațiului temporar pe disc în timpul construirii indexurilor, numărului de documente și traficului concurent de căutare.
Monitorizează workload-ul, nu doar containerul
Testele de capacitate ar trebui să exercite memoria utilizată la indexarea în batch, spațiul temporar pe disc în timpul construirii indexurilor, numărul de documente și traficul concurent de căutare, nu să repete un request către /. Rulează scenariul „creează un index, importă documente, configurează atributele filtrabile și demonstrează că o interogare tolerantă la greșeli de scriere și un filtru returnează înregistrările așteptate” la un nivel realist de concurență și înregistrează latența, rata de erori și creșterea spațiului de stocare.
Planificarea upgrade-ului trebuie să țină cont de acest risc: compatibilitatea dump-urilor Meilisearch și cerințele de rebuild ale indexurilor trebuie verificate înainte de schimbarea versiunilor. Testează noul release cu date de intrare reprezentative, apoi repetă tranzacția de acceptare și compară rezultatul. Dacă MEILI_ENV rămâne setat la development sau volumul de date se pierde în timpul unui redeploy, capturează tranzacția care eșuează și inspectează prima limită implicată, în loc să presupui că ingress-ul este responsabil.
Transformă smoke test-ul Meilisearch într-o verificare de release
Pentru Meilisearch, definește o tranzacție validată înainte de lansare: creează un index, importă documente, configurează atributele filtrabile și demonstrează că o interogare tolerantă la greșeli de scriere și un filtru returnează înregistrările așteptate. Pune în version control condițiile necesare, răspunsul așteptat și pașii de cleanup, fără valori secrete. Fixează imaginea folosită pentru stabilirea acestui reper.
Folosește tranzacția pentru a valida înlocuirea și o restaurare independentă. Serviciul restaurat este acceptabil doar atunci când un dump se importă pe un server curat cu aceleași setări, același număr de documente și același ranking reprezentativ. În același timp, observă memoria utilizată la indexarea în batch, spațiul temporar pe disc în timpul construirii indexurilor, numărul de documente și traficul concurent de căutare și transformă partea cea mai lentă sau mai constrânsă într-o alertă la nivel de serviciu.
Poarta de verificare are nevoie și de un caz negativ: trimite date de intrare inofensive aproape de limita de resurse sau de format asociată acestei probleme: MEILI_ENV rămâne setat la development sau volumul de date se pierde în timpul unui redeploy. Confirmă că Meilisearch produce o eroare acționabilă, păstrând în același timp datele, restabilește condiția validă și repetă tranzacția validată. Păstrarea ambelor rezultate împiedică transformarea unui endpoint superficial de health într-o singură dovadă pentru production.
Păstrează Meilisearch explicit în timp ce Dockup gestionează rutarea
Deploymentul Meilisearch cu un singur click oferit de Dockup ar trebui să facă înlocuirea sigură: ruta continuă să vizeze 7700, secretele nu sunt incluse în imagine, iar căile persistente reapar pe noul container. Același deployment poate rula pe compute Dockup sau pe o mașină atașată.
Finalizează lucrările specifice aplicației confirmând cerința locală — un spațiu pe disc dimensionat pentru indexuri, plus o rezervă pentru rebuild-uri și dump-uri, aplicând adresa publică canonică și rulând această verificare de acceptare: creează un index, importă documente, configurează atributele filtrabile și demonstrează că o interogare tolerantă la greșeli de scriere și un filtru returnează înregistrările așteptate. Adaugă rezultatul restaurării în runbook înainte ca utilizatorii reali să ajungă la serviciu.
Întrebări frecvente
De ce are nevoie Meilisearch pentru un deployment în production?
Direcționează containerul Meilisearch de pe portul 7700 printr-un singur origin HTTPS. Cerința locală de runtime este un spațiu pe disc dimensionat pentru indexuri, plus o rezervă pentru rebuild-uri și dump-uri. Nu considera Meilisearch pregătit până când nu poți crea un index, importa documente, configura atributele filtrabile și demonstra că o interogare tolerantă la greșeli de scriere și un filtru returnează înregistrările așteptate.
Ce date Meilisearch trebuie incluse într-un backup?
Păstrează /meili_data și include dump-urile sau snapshot-urile programate, împreună cu directorul de date persistent, în același manifest de recuperare. O restaurare Meilisearch pe un server curat reușește doar atunci când un dump se importă pe un server curat cu aceleași setări, același număr de documente și același ranking reprezentativ.
Are Meilisearch nevoie de HTTPS în spatele unui reverse proxy?
Folosește HTTPS pentru origin-ul public Meilisearch și păstrează portul 7700 pe ruta internă. Aplică setarea Meilisearch corect: servește HTTP API-ul printr-un singur origin HTTPS autentificat. Pentru Meilisearch, HTTPS protejează credentialele sau conținutul utilizatorilor în tranzit și păstrează consecvent comportamentul clientului sensibil la origin.
Cum ar trebui testat un upgrade Meilisearch?
Restaurează starea curentă Meilisearch într-un deployment izolat, aplică versiunea candidată și repetă tranzacția sa de acceptare. Acordă o atenție deosebită acestui aspect, deoarece compatibilitatea dump-urilor Meilisearch și cerințele de rebuild ale indexurilor trebuie verificate înainte de schimbarea versiunilor. Păstrează imaginea Meilisearch anterioară până când limitele migrației datelor și ale rollback-ului sunt înțelese.
