/meilisearch-proxy

Primary LanguageGoMIT LicenseMIT

⚡ Meilisearch Caching Proxy ⚡


Description

This is a minimal caching proxy for Meilisearch. It's extremely light-weight and performant.

Why did we build this?

We had issues scaling meilisearch. Meilisearch does not scale out properly, you can scale vertically but not horizontally. This proxy can cache search requests in a compatible memory store, greatly reducing the amount of requests that hit the MeiliSearch instance.

Features

  • ⚡ Fast and minimal reverse proxy
  • 💾 Proxy and cache search requests (POST and GET)
  • 🥡 Secure purge API per index or globally

It supports the following caching engines:

  • in-memory (ristretto)
  • Redis

Tested against the following MeiliSearch versions:

  • v1.9

We only test with the self-hosted version, it will work with Meilisearch cloud but we cannot guarantee it.

Usage

You can install the proxy in Kubernetes using our helm chart:

helm pull oci://registry.maxroll.gg/library/meilisearch-proxy --version 0.1.5

helm install meilisearch-proxy oci://registry.maxroll.gg/library/meilisearch-proxy--version 0.1.5 \
--set meilisearch.url=http://meilisearch:7700 \
--set meilisearch.masterKey=<master_key> \
--set proxy.purgeToken=<purge_secret> \

You can also run the docker container directly:

docker run -p 7700:7700 -e MEILISEARCH_HOST=http://meilisearch-endpoint MEILISEARCH_MASTER_KEY=xxxx  -it registry.maxroll.gg/library/meilisearch-proxy:latest