Integrating Meilisearch With Laravel Using Docker

Laravel Meilisearch Docker Integrating Laravel & Meilisearch
Profile Picture Joton Sutradharβ€’ πŸ“– 5 min read β€’ πŸ“… 26th May 2025

Heads up!

Check my blogs on Dev.to and Medium!

If you're building a Laravel application and want blazing-fast search capabilities, Meilisearch is one of the best tools you can integrate. In this post, we’ll explore what Meilisearch is, why you should consider it, its use cases, pros and cons, and how to integrate it into a Laravel project using Docker.

🧠 What is Meilisearch?

Meilisearch is an open-source, lightning-fast search engine designed for modern web apps. Written in Rust, it provides out-of-the-box full-text search with typo tolerance, customizable ranking, filters, and near-instant results.

It’s ideal for applications where quick and relevant results are key to the user experience.

πŸ€” Why Meilisearch?

So, why choose Meilisearch over other tools like Algolia or Elasticsearch?

  • Developer-friendly: Meilisearch has a simple, RESTful API and integrates beautifully with Laravel using Laravel Scout.

  • Blazing fast: Search results are returned in milliseconds, providing an instant feel to your UI.

  • Zero-config startup: With Docker, you can be running in less than a minute.

  • Built-in features like typo tolerance, ranking, filtering, and synonyms with little to no setup.

  • Self-hosted alternative to Algolia: No API rate limits or high costs.

  • Great for user-facing search: Tailored for applications that require fast, fuzzy search with good UX.

πŸ›  Uses of Meilisearch

Meilisearch is ideal for:

  • E-commerce platforms: Search products by name, category, brand, etc.

  • Blogs & content systems: Instant article and tag search.

  • CRMs & dashboards: Quick filtering across tables.

  • Directories & job boards: Faceted search and filters across multiple fields.

  • Any Laravel app that benefits from fast search.

βœ… Pros and ❌ Cons of Meilisearch

βœ… Pros:

  • Extremely fast and lightweight

  • Easy to set up and scale

  • Built-in typo tolerance and filters

  • Instant indexing

  • RESTful and easy API

  • Self-hosted and free

❌ Cons:

  • Uses in-memory indexing (can be memory-intensive for very large datasets)

  • Not suitable for complex analytics-heavy queries

  • Still growing in community and ecosystem

  • No official horizontal sharding yet (in development)

🐳 Integrating Meilisearch with Laravel Using Docker

Step 1: Docker Compose for Laravel + Meilisearch

Create a docker-compose.yml file that includes both the Laravel app and Meilisearch service in the same network:

version: '3.8'

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    image: laravel-app
    container_name: laravel-app
    restart: unless-stopped
    ports:
      - "8000:8000"
    volumes:
      - .:/var/www
    depends_on:
      - meilisearch
    networks:
      - laravel

  meilisearch:
    image: getmeili/meilisearch:v1.8
    container_name: meilisearch
    environment:
      - MEILI_MASTER_KEY=masterKey
    ports:
      - "7700:7700"
    volumes:
      - ./meili_data:/meili_data
    networks:
      - laravel

networks:
  laravel:
    driver: bridge

⚠️ Make sure your Laravel .env points to http://meilisearch:7700 (Docker container name) instead of localhost.

Step 2: Install Laravel Scout & Meilisearch PHP SDK

Run:

composer require laravel/scout meilisearch/meilisearch-php

Then publish the config:

php artisan vendor:publish --provider="Laravel\Scout\ScoutServiceProvider"

Step 3: Configure .env and config/scout.php

Update your .env:

SCOUT_DRIVER=meilisearch
MEILISEARCH_HOST=http://meilisearch:7700
MEILISEARCH_KEY=masterKey

In config/scout.php, set:

'driver' => env('SCOUT_DRIVER', 'meilisearch'),

Step 4: Make a Model Searchable

Add the Searchable trait to your model:

use Laravel\Scout\Searchable;

class Post extends Model
{
    use Searchable;

    public function toSearchableArray(): array
    {
        return [
            'title' => $this->title,
            'body' => $this->body,
        ];
    }
}

Step 5: Import Data

php artisan scout:import "App\Models\Post"

Step 6: Perform a Search

$results = Post::search('Laravel')->get();

πŸ§ͺ Final Thoughts

Meilisearch brings performance and simplicity to Laravel search like never before. With features like typo tolerance and instant results, it's perfect for modern apps needing real-time, full-text search.

Using Docker makes setup seamless — and with Laravel Scout, you can be up and running in just a few commands.

πŸ“ To learn more about Laravel Scout visit the documentation Laravel Scout

 

Ready to power up your Laravel app with real-time search? Give Meilisearch a try!

Happy Coding

Related Blogs
Supercharge Your Laravel App With Queues – A Developer’s Experience With Background Email Sending
Laravel Jobs Queue Queue Jobs Php Joton Sutradhar

As Laravel developers, one of the critical lessons we eventually learn is: not everything should happen in real-time. Whether it's sending emails, processing images, syncing third-party data, or running analytics β€” pushing these resource-heavy or time-consuming tasks to the background is essential for a performant and responsive application.

Profile Picture Joton Sutradhar β€’ πŸ“– 6 min read β€’ πŸ“… 29th May 2025
Mastering The Laravel App Service Pattern
Laravel PHP Service Pattern

As your Laravel application grows, keeping your code organized becomes more important than ever. A bloated controller quickly becomes hard to read, test, and maintain. One of the best solutions to this problem is using the Service Pattern β€” a pattern that helps separate your business logic from your controllers.

Profile Picture Joton Sutradhar β€’ πŸ“– 6 min read β€’ πŸ“… 27th May 2025
Standard Logging Management In A Laravel Application
Logging Laravel Log Management

Effective logging is critical in any Laravel application β€” whether you're debugging issues in development or monitoring your app in production. Laravel, being a modern PHP framework, provides a robust logging system powered by Monolog, giving you flexibility, power, and control.

Profile Picture Joton Sutradhar β€’ πŸ“– 4 min read β€’ πŸ“… 24th May 2025
Subscribe to my newsletter

Get recent projects & blog updates to your inbox.

I never share your email. Read our privacy policy.

© 2025 Joton Sutradhar. All rights reserved.