Indeks dziennikaDockup / notatka terenowa
Note / self-host-meilisearch

Jak hostować Meilisearch samodzielnie w 2026 roku: klucze główne, indeksy i zrzuty

Hostuj Meilisearch samodzielnie z poprawnymi portami, trwałym storage, HTTPS, sekretami, kopiami zapasowymi i kontrolą aktualizacji. Dowiedz się, jak naprawić sytuację, gdy MEILI_ENV pozostaje ustawione na development.

Samodzielne hostowanie Meilisearch staje się interesujące przy pierwszym ponownym wdrożeniu, a nie przy pierwszym docker run. Jeśli MEILI_ENV pozostaje ustawione na development albo wolumen z danymi znika podczas ponownego wdrożenia, Docker nadal może raportować całkowicie poprawnie działający proces. Poniższe wdrożenie opiera się na obserwowalnym zachowaniu: utworzeniu indeksu, zaimportowaniu dokumentów, skonfigurowaniu atrybutów filtrowalnych oraz potwierdzeniu, że zapytanie tolerujące literówki i filtr zwracają oczekiwane rekordy.

Przeznaczenie Meilisearch jest jasno określone: pełnotekstowe wyszukiwanie tolerujące literówki z szybkimi HTTP API. Ten opis wskazuje, co musi pozostać publiczne, co powinno być prywatne i co musi odtworzyć kopia zapasowa.

Poznaj Meilisearch przed uruchomieniem Dockera

Rozdziel w Meilisearch cztery obszary: ingress, listener na porcie 7700, trwały stan oraz usługi pomocnicze lub lokalne zasoby. Lokalne wymaganie runtime to przestrzeń dyskowa na indeksy wraz z zapasem na przebudowy i zrzuty. Utrzymuj jawny cykl życia, aby przenoszenie Meilisearch między hostami nie zmieniało po cichu jego działania.

Wykonaj znaną, poprawną transakcję — utwórz indeks, zaimportuj dokumenty, skonfiguruj atrybuty filtrowalne oraz potwierdź, że zapytanie tolerujące literówki i filtr zwracają oczekiwane rekordy — zanim uznasz separację za zakończoną. Zmierz zużycie pamięci podczas indeksowania batchy, tymczasowe miejsce na dysku w trakcie budowania indeksów, liczbę dokumentów oraz współbieżny ruch wyszukiwania i zachowaj wynik wraz z dokumentacją wdrożenia. Będzie on jednocześnie kryterium akceptacji i pierwszym punktem odniesienia dla planowania pojemności.

Zapewnij powtarzalny start Meilisearch

Użyj polecenia, które ujawnia wszystkie istotne wybory. Ta konfiguracja bazowa wiąże Meilisearch z loopbackiem hosta, dodaje znane mounty danych i przekazuje pierwsze wymagane ustawienie. Potwierdź lokalne wymaganie przed udostępnieniem usługi: przestrzeń dyskową na indeksy wraz z zapasem na przebudowy i zrzuty.

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

Zastąp pływające tagi przetestowaną wersją lub digestem. Po uruchomieniu sprawdź docker logs --tail 200 meilisearch i potwierdź, że proces nasłuchuje na porcie 7700. Następnie wykonaj test akceptacyjny Meilisearch; odpowiedź strony głównej nie może potwierdzić powodzenia całego scenariusza: utwórz indeks, zaimportuj dokumenty, skonfiguruj atrybuty filtrowalne oraz potwierdź, że zapytanie tolerujące literówki i filtr zwracają oczekiwane rekordy.

Nadaj Meilisearch jeden kanoniczny adres

Traktuj zewnętrzny URL Meilisearch jako konfigurację, która przetrwa ponowne wdrożenia. Najpierw udostępnij HTTP API przez jeden uwierzytelniony origin HTTPS, a następnie skieruj hostname na port 7700, zachowując oryginalne wartości hosta i schematu.

Lista kontrolna dostępności wdrożenia może potwierdzić, że żądania trafiają do kontenera. Od tego momentu znany problem — MEILI_ENV pozostaje ustawione na development albo wolumen z danymi znika podczas ponownego wdrożenia — należy analizować w Meilisearch, jego stanie lub obciążeniu, a nie w automatyzacji certyfikatów.

Odtwórz Meilisearch na pustym hoście

Trwały zestaw do odtwarzania obejmuje zaplanowane zrzuty lub snapshoty oraz katalog z trwałymi danymi. Zamontuj /meili_data przed bootstrapem, zapisz nieszkodliwe przykładowe dane i wymień kontener, aby potwierdzić, że ta ścieżka rzeczywiście jest trwała. Wolumen chroni dane przed wymianą kontenera, ale nie przed utratą hosta, przypadkowym usunięciem ani uszkodzeniem na poziomie aplikacji.

Twórz kopie zapasowe z uwzględnieniem źródła danych: w razie potrzeby używaj logicznych zrzutów dla działających baz danych, a pliki kopiuj wyłącznie ze spójnego stanu. Przechowuj jedną zaszyfrowaną kopię poza hostem Meilisearch. Kryterium akceptacji odtworzenia powinno być konkretne — zrzut musi zaimportować się na czystym serwerze z tymi samymi ustawieniami, liczbą dokumentów i reprezentatywnym rankingiem. Przewodnik po testowanych odtworzeniach kopii zapasowych wyjaśnia, dlaczego sam pomyślny status zadania nie wystarcza.

Chroń najcenniejszą część Meilisearch

Nie przejmuj założeń dotyczących bezpieczeństwa z lokalnego tutoriala. Szczególnym problemem Meilisearch jest uruchomienie produkcji bez master key. Produkcja powinna zatem przeznaczyć master key do administracji, a klientom wyszukiwania w przeglądarce udostępniać ograniczone search keys.

Traktuj MEILI_MASTER_KEY zgodnie z jego rolą w Meilisearch: przechowuj wrażliwe wartości poza Gitem, opisz skutki rotacji i nigdy nie zastępuj wartości przykładowej publicznym przykładem w produkcji. Ogranicz dostęp do systemu plików i sieci, zabezpiecz endpointy konfiguracyjne oraz zdefiniuj limity przesyłania, żądań lub wykonywania wokół zużycia pamięci podczas indeksowania batchy, tymczasowego miejsca na dysku w trakcie budowania indeksów, liczby dokumentów i współbieżnego ruchu wyszukiwania.

Obserwuj obciążenie, nie tylko kontener

Testy pojemności powinny obejmować zużycie pamięci podczas indeksowania batchy, tymczasowe miejsce na dysku w trakcie budowania indeksów, liczbę dokumentów i współbieżny ruch wyszukiwania, a nie powtarzane żądania do /. Uruchom scenariusz „utwórz indeks, zaimportuj dokumenty, skonfiguruj atrybuty filtrowalne oraz potwierdź, że zapytanie tolerujące literówki i filtr zwracają oczekiwane rekordy” przy realistycznej współbieżności i rejestruj opóźnienie, współczynnik błędów oraz przyrost zajętości storage.

Planowanie aktualizacji musi uwzględniać to ryzyko: przed zmianą wersji należy sprawdzić kompatybilność zrzutów Meilisearch oraz wymagania dotyczące przebudowy indeksów. Przetestuj nowe wydanie na reprezentatywnych danych, a następnie ponownie wykonaj transakcję akceptacyjną i porównaj wynik. Jeśli MEILI_ENV pozostaje ustawione na development albo wolumen z danymi znika podczas ponownego wdrożenia, zarejestruj nieudaną transakcję i przeanalizuj pierwszą napotkaną granicę zamiast zakładać, że winny jest ingress.

Zamień test smoke Meilisearch w kontrolę wydania

W przypadku Meilisearch zdefiniuj znaną, poprawną transakcję przed uruchomieniem: utwórz indeks, zaimportuj dokumenty, skonfiguruj atrybuty filtrowalne oraz potwierdź, że zapytanie tolerujące literówki i filtr zwracają oczekiwane rekordy. Umieść jej wymagania wstępne, oczekiwaną odpowiedź i kroki czyszczenia w systemie kontroli wersji, bez wartości sekretów. Przypnij obraz użyty do ustanowienia tego punktu odniesienia.

Użyj transakcji do sprawdzenia wymiany kontenera i niezależnego odtworzenia. Odtworzona usługa jest akceptowalna wyłącznie wtedy, gdy zrzut zaimportuje się na czystym serwerze z tymi samymi ustawieniami, liczbą dokumentów i reprezentatywnym rankingiem. Jednocześnie obserwuj zużycie pamięci podczas indeksowania batchy, tymczasowe miejsce na dysku w trakcie budowania indeksów, liczbę dokumentów i współbieżny ruch wyszukiwania, a następnie zamień najwolniejszy lub najbardziej ograniczony element w alert na poziomie usługi.

Bramka powinna obejmować również przypadek negatywny: prześlij nieszkodliwe dane w pobliżu limitu zasobów lub formatu związanego z tą granicą: MEILI_ENV pozostaje ustawione na development albo wolumen z danymi znika podczas ponownego wdrożenia. Potwierdź, że Meilisearch zwraca możliwy do wykorzystania błąd, zachowując dane, przywróć poprawny stan i ponownie wykonaj znaną, poprawną transakcję. Zachowanie obu wyników zapobiega sytuacji, w której powierzchowny endpoint health staje się jedynym dowodem działania produkcji.

Zachowaj jawność Meilisearch, a routing powierz Dockup

Jednoprzyciskowe wdrożenie Meilisearch w Dockup powinno zapewniać bezpieczną wymianę kontenera: routing nadal wskazuje port 7700, sekrety nie są wbudowane w obraz, a trwałe ścieżki pojawiają się w nowym kontenerze. To samo wdrożenie może działać na infrastrukturze obliczeniowej Dockup lub na podłączonej maszynie.

Zakończ prace właściwe dla aplikacji, potwierdzając lokalne wymaganie — przestrzeń dyskową na indeksy wraz z zapasem na przebudowy i zrzuty — ustawiając kanoniczny publiczny adres i uruchamiając ten test akceptacyjny: utwórz indeks, zaimportuj dokumenty, skonfiguruj atrybuty filtrowalne oraz potwierdź, że zapytanie tolerujące literówki i filtr zwracają oczekiwane rekordy. Dodaj wynik odtworzenia do runbooka, zanim pojawią się prawdziwi użytkownicy.

Często zadawane pytania

Czego Meilisearch potrzebuje do wdrożenia produkcyjnego?

Skieruj kontener Meilisearch na porcie 7700 przez jeden origin HTTPS. Lokalne wymaganie runtime to przestrzeń dyskowa na indeksy wraz z zapasem na przebudowy i zrzuty. Nie uznawaj Meilisearch za gotowy, dopóki nie możesz utworzyć indeksu, zaimportować dokumentów, skonfigurować atrybutów filtrowalnych oraz potwierdzić, że zapytanie tolerujące literówki i filtr zwracają oczekiwane rekordy.

Które dane Meilisearch powinny znaleźć się w kopii zapasowej?

Utrwal /meili_data i uwzględnij zaplanowane zrzuty lub snapshoty oraz katalog z trwałymi danymi w tym samym manifeście odtwarzania. Czyste odtworzenie Meilisearch kończy się powodzeniem wyłącznie wtedy, gdy zrzut zaimportuje się na czystym serwerze z tymi samymi ustawieniami, liczbą dokumentów i reprezentatywnym rankingiem.

Czy Meilisearch wymaga HTTPS za reverse proxy?

Używaj HTTPS dla publicznego originu Meilisearch, a port 7700 pozostaw na wewnętrznej trasie. Zastosuj poprawnie ustawienie Meilisearch: udostępnij HTTP API przez jeden uwierzytelniony origin HTTPS. W przypadku Meilisearch HTTPS chroni dane uwierzytelniające lub treści użytkowników podczas transmisji i zapewnia spójne zachowanie klienta zależne od originu.

Jak testować aktualizację Meilisearch?

Odtwórz bieżący stan Meilisearch w odizolowanym wdrożeniu, zastosuj wersję kandydującą i ponownie wykonaj jego transakcję akceptacyjną. Zwróć szczególną uwagę na to, że przed zmianą wersji należy sprawdzić kompatybilność zrzutów Meilisearch oraz wymagania dotyczące przebudowy indeksów. Zachowaj poprzedni obraz Meilisearch do czasu zrozumienia granicy migracji danych i rollbacku.