Self-host Meilisearch
A search engine written in Rust for search-as-you-type over your own data: typo tolerance, filters and facets, geo search and hybrid keyword-plus-vector search behind a REST API. The Community Edition is MIT; the index lives on disk in memory-mapped LMDB files, so it does not have to fit in RAM.
Key facts
Pick Meilisearch when you want Algolia-style search-as-you-type over your own data on one server: a Rust binary with typo tolerance, filters and facets, geo search, and hybrid keyword-plus-vector search (OpenAI, any REST embedder, or a HuggingFace model run locally). The index lives on disk in memory-mapped LMDB files, so it does not have to fit in RAM; upstream says a RAM-to-disk ratio around 1/3 does not materially hurt performance. The Community Edition — the `getmeili/meilisearch` image — is MIT. Several self-hosted apps, Karakeep among them, already bundle it as their full-text index.
Follow the Meilisearch deploy guide →What you need
- Any VPS with at least 1024 MB of RAM
- A domain you control — most self-hosted setups need HTTPS in front of them
- Under an hour if you've used Docker before
Paid link — we earn a commission if you shop through it.
Install
Run these commands on your server:
# Meilisearch Community Edition — official image, per meilisearch.com/docs (Docker guide); upstream advises pinning a version over :latest
export MEILI_MASTER_KEY="$(openssl rand -base64 24)" && echo "$MEILI_MASTER_KEY"
mkdir -p meili_data
docker run -d --name meilisearch --restart unless-stopped \
-p 7700:7700 \
-e MEILI_ENV=production -e MEILI_MASTER_KEY \
-v $(pwd)/meili_data:/meili_data \
getmeili/meilisearch:v1.54.0
# production mode requires a master key of 16+ bytes; add -e MEILI_NO_ANALYTICS=true to opt out of telemetry
# API on http://SERVER_IP:7700 — put it behind a reverse proxy with HTTPSWhat you take on
Meilisearch is simple to start; these are the edges its own docs spell out: