I use Lando for all my PHP development environments. Working at a development agency means lots of different projects that all need different versions of software and Lando really solves that problem.
Today I needed to add Meilisearch to an existing project and luckily Lando allows you to add your own custom services.
I initially found this online article which provided information on how to get Meilisearch working, however, it was not current and didn't work.
So I had to figure it out myself.
The Lando Config
Below is the config you will want to add to your
services: meilisearch: type: compose app_mount: false services: image: getmeili/meilisearch:v0.30 command: tini -- /bin/sh -c /bin/meilisearch ports: - '7700' volumes: - meilisearch:/meili_data volumes: meilsearch:
Firstly, you'll notice this is locked to v0.30. This ensures the config will continue to run in the future, especially as Meilisearch's API is rapidly changing as signified by the zero major version.
We have specified port
7700 which is the standard Meilisearch port. However, to avoid conflicts we haven't specified an external port. To find the port being used you can run
docker ps from the command line.
If you would like to specify the external port, perhaps because you only have one project running Meilisearch, you can change the config to:
ports: - '7700:7700'
Assuming you have your Lando project started (or rebuilt), you should be able to access Meilisearch's Mini-dashboard in your web browser.
If you set the external port manually to
7700 then you'll be able to use http://127.0.0.1:7700/
Otherwise, change the port to the one being used by Docker.
Laravel Scout Config
Add the following to your
SCOUT_DRIVER=meilisearch MEILISEARCH_HOST=http://meilisearch:7700 MEILISEARCH_KEY=
Now you can start indexing your data and create an awesome fast search experience, how lovely.