October 18, 2026 5 min read

Self-Hosting Meilisearch vs Managed Hosting: What It Really Costs

Running Meilisearch yourself looks cheap until you count the keys, TLS, upgrades, backups and on-call. Here's the honest math, and when self-hosting is still the right call.

meilisearchhostingdevops

Getting Meilisearch running takes about five minutes. One docker run, a few documents, and you're searching with typo tolerance on your laptop. It feels like the hard part is done.

Then it goes to production. Six months later, a new Meilisearch release fixes a relevancy bug you care about, your disk is at 91% after a big reindex, and nobody remembers where the snapshots go. The software is free. Running it isn't.

This post looks at what self-hosting Meilisearch in production actually involves, when it's a perfectly good choice, and when managed hosting is the cheaper option once you count your time.

The server bill is the small part

When teams compare self-hosting to a managed plan, they usually compare the monthly invoice and nothing else. That misses the bigger cost, which is the hours someone spends operating the search engine. Search is user-facing, so when it's slow or down, customers notice right away.

Here's what Meilisearch's own documentation asks of a production setup.

What "Meilisearch in production" actually means

1. Locking it down: master key, API keys and HTTPS

An instance without a master key is wide open. Meilisearch's security guide calls setting one "the first and most important step to secure your Meilisearch project". The key must be at least 16 bytes, and it should only be used to manage API keys, not for everyday requests.

Meilisearch also serves plain HTTP by itself. The official production deployment guide has you:

  • create a dedicated system user, because running as root is an unnecessary risk
  • run Meilisearch as a systemd service so it restarts on failure and on boot
  • put Nginx in front as a reverse proxy
  • set up HTTPS with Certbot and keep certificates renewing every 90 days

None of this is hard, but someone has to set it up, document it and keep it working.

2. Upgrades: the part that bites

Meilisearch ships often, and new releases bring features and fixes you'll want. Upgrading a self-hosted instance is where things get delicate. According to the official update guide:

  • Recent versions support a dumpless upgrade (--upgrade-db), but only for databases created with v1.12 or later.
  • Database upgrades are not atomic and can occasionally leave a corrupted database, so the guide says to take a snapshot first.
  • Older databases need the dump-based path. You create a dump, stop the instance, install the new binary and relaunch with --import-dump. Importing re-indexes every document, which can take a long time on a large index.

So every upgrade means a backup first, then a maintenance window, then checking the result, plus a rollback plan in case it goes wrong.

3. Backups you've actually restored

Meilisearch has two backup formats, and they behave differently (backup overview):

  • Snapshots are an exact copy of the database. They restore fast, but only on the same Meilisearch version. You can schedule them, for example daily with --schedule-snapshot=86400.
  • Dumps are portable across versions, so they're what you use for upgrades. They're created on demand, and restoring one is slow because everything is re-indexed.

The docs also recommend storing backups off-server and testing restores periodically. A backup you've never restored is only a hope. If the snapshots sit on the same disk as the database, they're lost when that disk fails.

4. Keeping it healthy

Indexing is the heaviest thing Meilisearch does. A large import or a full reindex is when memory and disk pressure peak, and that's when a small instance tends to fall over. Self-hosting means you watch:

  • disk usage, because indexes, snapshots and dumps all grow
  • indexing tasks that fail or back up
  • OS and security updates for the machine and the proxy in front of it
  • certificate renewals that fail quietly

5. Someone on call

Most teams underestimate this one. When search breaks at 2 a.m. during a sale, somebody has to answer the alert. With a self-hosted engine, that person is on your team.

A quick, honest tally

Here's a deliberately conservative example. Suppose upgrades, backup checks, renewals and the occasional incident take 3 hours a month. At an engineering cost of $75/hour, that's $225 a month, before the hosting bill and before the first bad night.

Your numbers will be different, and that's fine. The point is that the time almost always costs more than the infrastructure.

When self-hosting is the right call

Self-hosting is genuinely the better option in some cases:

  • Hobby projects and prototypes. If downtime costs nothing, a container on a box you already have is fine.
  • Strict on-premises requirements. If your data can't leave your network, managed hosting isn't an option anyway.
  • Teams that already run infrastructure. If you have SRE coverage, Terraform and monitoring in place, one more service is a small increment.
  • Deep customization. You want to run unusual builds, flags or experimental features on your own schedule.

If one of those describes you, Meilisearch's production guide is excellent and you'll be in good shape.

What managed Meilisearch takes off your plate

For everyone else, the question is how much of that list you want to own. With CelerSearch, the answer is none of it:

  • Usually live in under a minute. You pick a region and a Meilisearch version, and you get a connection URL and an API key (provisioning).
  • HTTPS included. Every instance is served over SSL, with no certificates to renew.
  • Daily encrypted backups on every plan, plus Back up now before a risky change and one-click restore (backups).
  • One-click upgrades with a safety snapshot taken automatically first, applied when you're ready (engine upgrades).
  • Unlimited searches. Plans are priced by document count, starting at $12/month, so a traffic spike won't change your bill.
  • A human to talk to when something goes wrong.

It's standard Meilisearch underneath, so you keep using the official SDKs and the API you already know. Point your app at the instance URL and API key and you're done. See Connect any app for examples in JavaScript, PHP, Python and curl. Running WordPress or WooCommerce? The free CelerSearch plugin connects to your instance with no code.

The bottom line

Self-hosting Meilisearch is a great way to learn the engine, and it's the right call when infrastructure is already your team's job. For most product teams, though, the real cost is the upgrades, backups and on-call, not the server. That's exactly the work managed hosting removes.

If you'd rather ship search than operate it, compare the plans and have an instance live in minutes.

Ready to upgrade your site search?

Get instant, typo-tolerant search for your site in minutes.

View Pricing