Skip to content

Self-host Meilisearch

updated Sep 2026prices checked · Jul 2026Install verified on Ubuntu 26.04 · Sep 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →

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

CategorySearch engine
LicenseMIT
StackRust
Min RAM1024 MB
Official imageyes
Measured idle RAM25 MB
Difficulty
Our recommendation

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
Where to host itaffiliate disclosure
Hetzner Cloudrun it on
From $23.59/mo · 2 vCPU / 4 GB / 80 GB · EU + US
Get Hetzner Cloud (opens in new tab)
Kamaterafree trial
From $4/mo · 1 vCPU / 1 GB / 20 GB · US + EU + Asia
Start free on Kamatera → (opens in new tab)
DigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + Asia
Deploy on DigitalOcean → (opens in new tab)

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 HTTPS

What you take on

Meilisearch is simple to start; these are the edges its own docs spell out:

non-negotiableSet MEILI_ENV=production and a master key of at least 16 bytes. Without them the instance runs in development mode with the search-preview UI enabled. The master key is for managing keys only; applications should use the generated Default Search / Admin API keys or keys you create, and tenant tokens for per-user filtering.
non-negotiableHigh availability is not in the free build. Replication and sharding require the Enterprise Edition, whose code is under a Business Source Licence that allows "non-production purposes only" without a commercial agreement. A self-hosted Community Edition is one node: back it up with snapshots (--schedule-snapshot) or dumps.
non-negotiableDatabases are tied to the version that created them. Upgrades run with --upgrade-db, which upstream says is "not atomic", so snapshot first; a database created before v1.12 must go through a dump and re-import. Pin an image tag — the docs advise against :latest.
non-negotiableIndexing is the memory-hungry part: by default the indexer caps itself at two thirds of the machine's RAM (--max-indexing-memory overrides it), and most out-of-memory kills happen during indexing. Send large imports in batches. Disk use only grows, because LMDB does not return space freed by deletions to the OS.
non-negotiableTelemetry is on by default; set MEILI_NO_ANALYTICS=true (or --no-analytics) to opt out. The 1 GB floor in our catalog is our estimate for a small index, not an upstream figure — Meilisearch publishes no minimum, and a local HuggingFace embedder needs more.

An alternative to

Head-to-head

More self-hosted tools

We use analytics cookies (Google Analytics, PostHog) to see which guides are useful. No ad networks, no cross-site tracking. See our privacy policy.