Open-source, pretty, simple and fast ⚡ Meilisearch admin dashboard UI for managing your meilisearch instances
Open-source, pretty, simple and fast ⚡ Meilisearch admin dashboard UI for managing your meilisearch instances
ENGLISH | 中文
An open-source, pretty, simple and fast meilisearch admin dashboard UI for managing your meilisearch instances
[!IMPORTANT] The main branch may be unstable or unavailable during development. Please use release instead of main branch to obtain a stable version app
Indexes CRUD
Search documents
Documents management
️️ Index settings
⚓ Multiple instances management
Data is stored inside your browser
Docker image support
Singleton mode support (easy to integrate with your own apps)
I18n support (en, zh)
[!WARNING] This app have not achieved responsive design totally, so mind that only use this app on desktop to gain better experience.
✅ Remember update CORS settings in your instance server for this ui domain before using.
Because this app use meilisearch official JS client to call your meilisearch instance, you need to manually configure CORS settings in your web server to make sure ui panel can access your instance server with api calls.
Add your ui panel deployment domain to your instance server cors list.
ex:
# ... other configurations
add_header Access-Control-Allow-Origin "your.meilisearch-ui.domain.com";
# ... other configurations
Learn how to configure CORS settings in your web server
There is a live demo meilisearch-ui, deploy on Vercel.
docker pull eyeix/meilisearch-ui:latest
docker run -d --restart=on-failure:5 --name="meilisearch-ui" -p :24900 eyeix/meilisearch-ui:latest
Due to functions such as adapting custom paths, the main image size will become a burden for some users. If you only need to use the basic functionality of the application, you can use the lite variant image, which contains only the necessary constructs and is very small compared to the main image.
For specific image variants, please refer to Image version list
lite images do not support the following features:
You can deploy this app to the cloud with Vercel
Just one click the button below to deploy this app automatically
See this issue.
You can configure the base path of this app by setting the BASE_PATH environment variable.
For example, if you want to deploy this app to the /meilisearch-ui path, you can set the BASE_PATH environment variable to /meilisearch-ui.
docker run -d --restart=on-failure:5 --name="meilisearch-ui" -p :24900 -e BASE_PATH="/meilisearch-ui" eyeix/meilisearch-ui:latest
See this issue.
If you want to use this app with only one meilisearch instance, you can enable the singleton mode in two ways:
Configure singleton mode using environment variables:
docker run -d --restart=on-failure:5 \
--name="meilisearch-ui" \
-p :24900 \
-e SINGLETON_MODE=true \
-e SINGLETON_HOST=your-meilisearch-host \
-e SINGLETON_API_KEY=your-api-key \
eyeix/meilisearch-ui:latest
The supported environment variables are SINGLETON_MODE, SINGLETON_HOST and SINGLETON_API_KEY — the singleton instance has no configurable index or id.
[!IMPORTANT]
SINGLETON_HOST must be reachable from your browser
This app is a pure client-side SPA: the environment variables are only baked into the static bundle at build time, and all requests go directly from the browser to your meilisearch instance. Therefore:
- Do NOT use docker-internal hostnames (e.g.
http://meilisearch:7700) unless your browser can resolve them; use a host-reachable address instead (e.g.http://:7700or a reverse-proxied domain).- Your meilisearch instance must allow CORS for this UI origin, and
SINGLETON_API_KEYmust be a valid key.
[!CAUTION]
Security Note
Any singleton mode relevant env variables exposed in this way will eventually appear in the client package, so you should try to avoid using this method. When using singleton mode packaging, you need to carefully judge the network environment in which you deploy the application, and it is recommended to deploy in a trusted internal network environment.
If you need more customization, you can build from source following these steps:
1.Clone this repo
git clone [email protected]:eyeix/meilisearch-ui.git --depth=1
2.Go into root dir of repo
cd meilisearch-ui
3.install dependencies
pnpm install
4.create .env.local file at root dir of repo, add the following configuration:
VITE_SINGLETON_MODE=true
VITE_SINGLETON_HOST=your-meilisearch-host
VITE_SINGLETON_API_KEY=your-api-key
[!CAUTION]
Security Risk
See this issue.
.env.localfile is local only and you should add it in your.gitignoreto prevent it from being recorded by git.At the same time, any variables exposed in this way will eventually appear in the client package, so you should try to avoid using this method. When using singleton mode packaging, you need to carefully judge the network environment in which you deploy the application, and it is recommended to deploy in a trusted internal network environment.
5.Build the app
pnpm build
Once the build is complete, you will find the dist directory in the root directory, which is a packaged SPA application directory that can be deployed to any server.
You can preview the packaged singleton mode application locally using the following command:
pnpm dlx serve dist
Regardless of which method you use, when you open the app, you will be directly redirected to the instance page.
By default, all hosts are allowed and no extra configuration is needed.
Only if you want to restrict allowed hostnames, you can set the optional environment variable ALLOWED_HOSTS. For example:
ALLOWED_HOSTS=demo.ddev.site,another.domain.com
If you have no special requirements, you do not need to set this variable.
Note: The
ALLOWED_HOSTSvariable is only available in the full version image. The lite image does not support this feature.
[!NOTE] Install pnpm first.
git clone [email protected]:eyeix/meilisearch-ui.git
cd meilisearch-ui
pnpm install
pnpm dev
No open issues yet, or sync has not completed.