Come fare self-hosting di Meilisearch nel 2026: master key, indici e dump
Fai il self-hosting di Meilisearch configurando correttamente porte, storage persistente, HTTPS, segreti, backup e verifiche degli aggiornamenti. Scopri come risolvere il problema di MEILI_ENV che rimane su development.
Il self-hosting di Meilisearch diventa interessante al primo redeploy, non al primo docker run. Se MEILI_ENV rimane su development o il volume dei dati viene perso durante un redeploy, Docker può comunque segnalare un processo perfettamente funzionante. La distribuzione descritta di seguito è organizzata intorno a comportamenti osservabili: creare un indice, importare documenti, configurare gli attributi filtrabili e dimostrare che una query tollerante agli errori di battitura e un filtro restituiscano i record attesi.
Il compito di Meilisearch è chiaro: offrire una ricerca full-text tollerante agli errori di battitura tramite una API HTTP veloce. Questa descrizione indica cosa deve rimanere pubblico, cosa dovrebbe restare privato e cosa deve poter ricostruire un backup.
Mappa Meilisearch prima di toccare Docker
Separa quattro aspetti di Meilisearch: ingress, listener sulla porta 7700, stato persistente e servizi di supporto o capacità locale. Il requisito del runtime locale è uno spazio su disco dimensionato per gli indici, con margine sufficiente per le ricostruzioni e i dump. Mantieni esplicito il suo ciclo di vita, così spostare Meilisearch tra host diversi non ne modifica il comportamento in modo silenzioso.
Esegui la transazione verificata — crea un indice, importa documenti, configura gli attributi filtrabili e dimostra che una query tollerante agli errori di battitura e un filtro restituiscano i record attesi — prima di considerare completa questa separazione. Misura la memoria utilizzata dall'indicizzazione in batch, lo spazio temporaneo su disco durante la creazione degli indici, il numero di documenti e il traffico di ricerca concorrente, quindi conserva il risultato insieme al record della distribuzione. Otterrai sia un criterio di accettazione sia la prima baseline per la capacità.
Rendi riproducibile l'avvio di Meilisearch
Usa un comando che esponga ogni scelta importante. Questa configurazione di base vincola Meilisearch al loopback dell'host, aggiunge i mount dei dati noti e fornisce la prima impostazione richiesta. Verifica il requisito locale prima dell'esposizione: uno spazio su disco dimensionato per gli indici, con margine sufficiente per le ricostruzioni e i dump.
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
Sostituisci i tag mobili con una versione o un digest verificato. Dopo l'avvio, esamina docker logs --tail 200 meilisearch e conferma che il processo sia in ascolto sulla porta 7700. Esegui quindi il test di accettazione di Meilisearch; la risposta della root non può dimostrare che l'intero scenario abbia successo: crea un indice, importa documenti, configura gli attributi filtrabili e dimostra che una query tollerante agli errori di battitura e un filtro restituiscano i record attesi.
Assegna a Meilisearch un indirizzo canonico
Tratta l'URL esterno di Meilisearch come una configurazione che deve sopravvivere ai redeploy. Per prima cosa servi la API HTTP attraverso un'unica origine HTTPS autenticata; poi instrada l'hostname verso la porta 7700 mantenendo intatti host e schema originali.
La checklist per verificare la raggiungibilità della distribuzione può dimostrare che le richieste entrano nel container. Da quel momento, il problema noto — MEILI_ENV rimane su development oppure il volume dei dati viene perso durante un redeploy — dovrebbe essere analizzato in Meilisearch, nel suo stato o nel suo carico di lavoro, non nell'automazione dei certificati.
Ripristina Meilisearch su un host vuoto
L'insieme necessario per un ripristino è costituito da dump o snapshot pianificati e dalla directory dei dati persistente. Monta /meili_data prima del bootstrap, scrivi dati di esempio innocui e sostituisci il container per dimostrare che quel percorso è realmente persistente. Un volume protegge i dati dalla sostituzione del container, ma non dalla perdita dell'host, dalla cancellazione accidentale o dalla corruzione a livello applicativo.
Esegui backup che tengano conto della sorgente dati: quando necessario, usa dump logici per i database attivi e copia i file solo a partire da uno stato coerente. Conserva una copia crittografata lontano dall'host Meilisearch. Il criterio di accettazione per un ripristino deve essere specifico: un dump viene importato in un server pulito con le stesse impostazioni, lo stesso numero di documenti e un ranking rappresentativo. La guida ai backup verificati tramite ripristino spiega perché il solo successo del job non è sufficiente.
Proteggi la parte preziosa di Meilisearch
Non ereditare le ipotesi di sicurezza di un tutorial locale. La preoccupazione specifica di Meilisearch è avviare l'ambiente di produzione senza una master key. In produzione, quindi, la master key dovrebbe essere riservata all'amministrazione, mentre ai client di ricerca nel browser dovrebbero essere assegnate search key con permessi limitati.
Tratta MEILI_MASTER_KEY in base al suo ruolo in Meilisearch: mantieni i valori sensibili fuori da Git, documenta gli effetti della rotazione e non sostituire mai un esempio pubblico in produzione. Limita l'accesso al filesystem e alla rete, proteggi gli endpoint di configurazione e definisci limiti di upload, richiesta o esecuzione in relazione alla memoria utilizzata dall'indicizzazione in batch, allo spazio temporaneo su disco durante la creazione degli indici, al numero di documenti e al traffico di ricerca concorrente.
Monitora il carico di lavoro, non solo il container
I test di capacità devono esercitare la memoria utilizzata dall'indicizzazione in batch, lo spazio temporaneo su disco durante la creazione degli indici, il numero di documenti e il traffico di ricerca concorrente, non una richiesta ripetuta a /. Esegui lo scenario “crea un indice, importa documenti, configura gli attributi filtrabili e dimostra che una query tollerante agli errori di battitura e un filtro restituiscano i record attesi” con una concorrenza realistica e registra latenza, tasso di errore e crescita dello storage.
La pianificazione degli aggiornamenti deve tenere conto di questo rischio: la compatibilità dei dump di Meilisearch e i requisiti per la ricostruzione degli indici devono essere verificati prima di cambiare versione. Testa la nuova release con input rappresentativi, quindi ripeti la transazione di accettazione e confrontane il risultato. Se MEILI_ENV rimane su development o il volume dei dati viene perso durante un redeploy, acquisisci la transazione che fallisce e analizza il primo confine coinvolto invece di presumere che la responsabilità sia dell'ingress.
Trasforma lo smoke test di Meilisearch in una verifica di release
Per Meilisearch, definisci una transazione verificata prima del lancio: crea un indice, importa documenti, configura gli attributi filtrabili e dimostra che una query tollerante agli errori di battitura e un filtro restituiscano i record attesi. Inserisci in controllo versione i prerequisiti, la risposta prevista e i passaggi di pulizia, senza valori segreti. Fissa l'immagine utilizzata per stabilire questo riferimento.
Usa la transazione per convalidare una sostituzione e un ripristino indipendente. Il servizio ripristinato è accettabile solo quando un dump viene importato in un server pulito con le stesse impostazioni, lo stesso numero di documenti e un ranking rappresentativo. Allo stesso tempo, osserva la memoria utilizzata dall'indicizzazione in batch, lo spazio temporaneo su disco durante la creazione degli indici, il numero di documenti e il traffico di ricerca concorrente, trasformando la parte più lenta o più vincolata in un alert a livello di servizio.
Il gate deve includere anche un caso negativo: invia un input innocuo vicino al limite di risorse o di formato associato a questo confine: MEILI_ENV rimane su development oppure il volume dei dati viene perso durante un redeploy. Conferma che Meilisearch produca un errore utile senza compromettere i dati, ripristina la condizione valida e ripeti la transazione verificata. Conservare entrambi i risultati impedisce che un endpoint di health superficiale diventi l'unica evidenza disponibile in produzione.
Mantieni Meilisearch esplicito mentre Dockup gestisce il routing
Il deployment one-click di Meilisearch di Dockup dovrebbe rendere sicura la sostituzione: la route continua a puntare alla porta 7700, i segreti non vengono incorporati nell'immagine e i percorsi persistenti vengono ripristinati nel nuovo container. Lo stesso deployment può essere eseguito sul compute di Dockup o su una macchina collegata.
Completa il lavoro specifico dell'applicazione verificando il requisito locale — uno spazio su disco dimensionato per gli indici, con margine sufficiente per le ricostruzioni e i dump — applicando l'indirizzo pubblico canonico ed eseguendo questo test di accettazione: crea un indice, importa documenti, configura gli attributi filtrabili e dimostra che una query tollerante agli errori di battitura e un filtro restituiscano i record attesi. Aggiungi il risultato del ripristino al runbook prima dell'arrivo degli utenti reali.
Domande frequenti
Di cosa ha bisogno Meilisearch per un deployment in produzione?
Instrada il container Meilisearch sulla porta 7700 attraverso un'unica origine HTTPS. Il requisito del runtime locale è uno spazio su disco dimensionato per gli indici, con margine sufficiente per le ricostruzioni e i dump. Non considerare Meilisearch pronto finché non puoi creare un indice, importare documenti, configurare gli attributi filtrabili e dimostrare che una query tollerante agli errori di battitura e un filtro restituiscano i record attesi.
Quali dati di Meilisearch devono rientrare in un backup?
Rendi persistente /meili_data e includi dump o snapshot pianificati insieme alla directory dei dati persistente nello stesso manifest di ripristino. Un ripristino pulito di Meilisearch ha esito positivo solo quando un dump viene importato in un server pulito con le stesse impostazioni, lo stesso numero di documenti e un ranking rappresentativo.
Meilisearch richiede HTTPS dietro un reverse proxy?
Usa HTTPS per l'origine pubblica di Meilisearch e mantieni la porta 7700 sulla route interna. Applica correttamente l'impostazione di Meilisearch: servi la API HTTP attraverso un'unica origine HTTPS autenticata. Per Meilisearch, HTTPS protegge le credenziali o i contenuti degli utenti durante il transito e mantiene coerente il comportamento dei client sensibile all'origine.
Come deve essere testato un aggiornamento di Meilisearch?
Ripristina lo stato attuale di Meilisearch in un deployment isolato, applica la versione candidata e ripeti la relativa transazione di accettazione. Presta particolare attenzione, perché la compatibilità dei dump di Meilisearch e i requisiti per la ricostruzione degli indici devono essere verificati prima di cambiare versione. Conserva la precedente immagine di Meilisearch finché non avrai compreso i limiti della migrazione dei dati e del rollback.
