Meilisearch

Applications
Report Issue

A lightning-fast search engine that fits effortlessly into your apps, websites, and workflow.

Contributors:
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
Container: ghcr.io/ptero-eggs/installers:debian
Entrypoint: bash
#!/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 "-----------------------------------------"