docker.recipes

Meilisearch

beginner

Lightning-fast search engine with typo tolerance and instant results.

Overview

Meilisearch is an open-source, lightning-fast search engine built in Rust that delivers instant search results with typo tolerance out of the box. Originally developed by the French company Meili, it was designed to provide developers with a simple yet powerful alternative to complex search solutions like Elasticsearch, offering sub-50ms search responses with minimal configuration required. Unlike traditional search engines that require extensive setup and tuning, Meilisearch focuses on developer experience and instant search capabilities. This Docker deployment creates a standalone Meilisearch instance that provides both a RESTful search API and a built-in web dashboard for index management. The container exposes Meilisearch's HTTP API on port 7700, allowing applications to perform full-text searches, manage documents, and configure search parameters through simple REST calls. The setup includes persistent data storage to maintain search indexes and documents across container restarts. This configuration is ideal for developers building e-commerce platforms, documentation sites, or any application requiring fast, typo-tolerant search functionality. Startups and small-to-medium businesses will find Meilisearch particularly valuable as a cost-effective, self-hosted alternative to paid search services like Algolia, while still providing enterprise-grade search capabilities with faceted filtering, custom ranking, and multi-tenancy support.

Key Features

  • Sub-50ms search response times with instant-as-you-type search experience
  • Built-in typo tolerance that automatically corrects user spelling mistakes
  • Faceted search and filtering capabilities for complex data queries
  • Custom ranking rules to fine-tune search result relevance
  • Automatic highlighting and snippet generation in search results
  • RESTful API with comprehensive endpoints for indexing and searching
  • Built-in web dashboard accessible at localhost:7700 for index management
  • Multi-tenancy support with API key-based access control

Common Use Cases

  • 1E-commerce product catalogs with instant search and filtering by price, category, or brand
  • 2Documentation websites requiring fast full-text search across articles and guides
  • 3Content management systems needing typo-tolerant search for blogs or news sites
  • 4Small to medium-sized applications replacing expensive Algolia subscriptions
  • 5Development and staging environments for testing search functionality
  • 6Internal knowledge bases and wikis for company documentation search
  • 7Portfolio or gallery websites with searchable content and metadata filtering

Prerequisites

  • Docker Engine 20.10+ and Docker Compose V2 for container orchestration
  • Minimum 256MB RAM available, with 1GB+ recommended for production workloads
  • Port 7700 available on the host system for Meilisearch API and dashboard access
  • Basic understanding of RESTful APIs for document indexing and search operations
  • MEILI_MASTER_KEY environment variable set for production security
  • Sufficient disk space for search indexes (typically 10-30% of original data size)

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 meilisearch:
3 image: getmeili/meilisearch:latest
4 container_name: meilisearch
5 restart: unless-stopped
6 environment:
7 MEILI_MASTER_KEY: ${MEILI_MASTER_KEY}
8 MEILI_ENV: development
9 volumes:
10 - meili_data:/meili_data
11 ports:
12 - "7700:7700"
13 networks:
14 - meili-network
15
16volumes:
17 meili_data:
18
19networks:
20 meili-network:
21 driver: bridge

.env Template

.env
1MEILI_MASTER_KEY=changeme-master-key

Usage Notes

  1. 1Docs: https://www.meilisearch.com/docs
  2. 2API at http://localhost:7700 | Mini-dashboard at http://localhost:7700
  3. 3Create index: curl -X POST http://localhost:7700/indexes -d '{"uid":"movies"}'
  4. 4Typo-tolerant instant search - results in <50ms
  5. 5Use MEILI_MASTER_KEY for production security
  6. 6Great Algolia alternative - similar API, self-hosted

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 meilisearch:
5 image: getmeili/meilisearch:latest
6 container_name: meilisearch
7 restart: unless-stopped
8 environment:
9 MEILI_MASTER_KEY: ${MEILI_MASTER_KEY}
10 MEILI_ENV: development
11 volumes:
12 - meili_data:/meili_data
13 ports:
14 - "7700:7700"
15 networks:
16 - meili-network
17
18volumes:
19 meili_data:
20
21networks:
22 meili-network:
23 driver: bridge
24EOF
25
26# 2. Create the .env file
27cat > .env << 'EOF'
28MEILI_MASTER_KEY=changeme-master-key
29EOF
30
31# 3. Start the services
32docker compose up -d
33
34# 4. View logs
35docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/meilisearch/run | bash

Troubleshooting

  • Error 'MEILI_MASTER_KEY is not set': Set the MEILI_MASTER_KEY environment variable in your .env file or docker-compose override
  • Container exits with 'permission denied' on /meili_data: Ensure the Docker daemon has write permissions to the volume mount location
  • API returns 'index not found' error: Create an index first using POST request to /indexes endpoint before adding documents
  • Search results appear incomplete or outdated: Check if document indexing is complete by querying the /indexes/{uid}/stats endpoint
  • Dashboard shows 'Development environment' warning: Change MEILI_ENV to 'production' and ensure MEILI_MASTER_KEY is set for production deployments
  • High memory usage during indexing: Reduce batch size when adding documents or increase container memory limits for large datasets

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Ad Space