Meilisearch
ApplicationsA lightning-fast search engine that fits effortlessly into your apps, websites, and workflow.
README
Meilisearch
An open-source, lightning-fast, and hyper-relevant search engine that fits effortlessly into your workflow.
Server Ports
One port needs to be allocated to run Meilisearch.
Docker Images (1)
| Name | Image |
|---|---|
ghcr.io/ptero-eggs/yolks:debian | ghcr.io/ptero-eggs/yolks:debian |
Startup Command
./meilisearch --http-addr "0.0.0.0:{{SERVER_PORT}}" --max-indexing-memory="{{SERVER_MEMORY}}mb" $([ "$NO_ANALYTICS" -eq 1 ] && echo "--no-analytics") Variables (8)
Master key
In production, a Master key of at least 16 bytes is mandatory Sets the instance's master key, automatically protecting all routes except GET /health. This means you will need a valid API key to access all other endpoints.
- Environment:
MEILI_MASTER_KEY- Default:
None- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
nullable|string|max:64
Environment
Configures the instance's environment. Value must be either production or development.
- Environment:
MEILI_ENV- Default:
development- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|in:development,production
Disable analytics
Deactivates Meilisearch's built-in telemetry when provided.
- Environment:
NO_ANALYTICS- Default:
0- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|boolean
Dumps dir
Sets the directory where Meilisearch will create dump files.
- Environment:
MEILI_DUMP_DIR- Default:
/home/container/dumps- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|max:64
DB PATH
Designates the location where database files will be created and retrieved.
- Environment:
MEILI_DB_PATH- Default:
/home/container/data.ms- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|max:64
Log level
Defines how much detail should be present in Meilisearch's logs.
- Environment:
MEILI_LOG_LEVEL- Default:
INFO- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string|in:INFO,WARN,ERROR,TRACE
Config Path
Designates the location of the configuration file to load at launch.
- Environment:
MEILI_CONFIG_FILE_PATH- Default:
/home/container/config.toml- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|string
Max threads
Sets the maximum number of threads Meilisearch can use during indexing
- Environment:
MEILI_MAX_INDEXING_THREADS- Default:
2- User Viewable:
- ❌
- User Editable:
- ❌
- Rules:
required|integer
Installation Script
ghcr.io/ptero-eggs/installers:debianbash#!/bin/bash
## get release info and download links
LATEST_JSON=$(curl --silent "https://api.github.com/repos/meilisearch/meilisearch/releases/latest")
RELEASES=$(curl --silent "https://api.github.com/repos/meilisearch/meilisearch/releases")
MATCH=$([[ "$(uname -m)" == "x86_64" ]] && echo "linux-amd64" || echo "linux-aarch64")
if [ -z "${VERSION}" ] || [ "${VERSION}" == "latest" ]; then
DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url | grep -i ${MATCH})
else
VERSION_CHECK=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .tag_name')
if [ "${VERSION}" == "${VERSION_CHECK}" ]; then
DOWNLOAD_URL=$(echo ${RELEASES} | jq -r --arg VERSION "${VERSION}" '.[] | select(.tag_name==$VERSION) | .assets[].browser_download_url' | grep -i ${MATCH})
else
echo -e "defaulting to latest release"
DOWNLOAD_URL=$(echo ${LATEST_JSON} | jq .assets | jq -r .[].browser_download_url)
fi
fi
mkdir -p /mnt/server
cd /mnt/server
## Config file
FILE=/mnt/server/config.toml
if [ -f "$FILE" ]; then
echo "Config file exits"
else
echo "Config does not exist. Making one"
curl -sSL -o config.toml https://raw.githubusercontent.com/meilisearch/meilisearch/latest/config.toml
fi
curl -sSL -o meilisearch ${DOWNLOAD_URL}
chmod +x meilisearch
# Make the needed directory's
mkdir -p /mnt/server/dumps
mkdir -p /mnt/server/data.ms
## install end
echo "-----------------------------------------"
echo "Installation completed..."
echo "-----------------------------------------"