Egg Repository

Pterodactyl Community Egg Repository

Meilisearch

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

Read Me

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.

Yolks
NameTag
ghcr.io/ptero-eggs/yolks:debianghcr.io/ptero-eggs/yolks:debian
Variables and Startup

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

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 Variable: MEILI_MASTER_KEY
Default Value:
User Viewable:
User Editable:
Environment

Configures the instance's environment. Value must be either production or development.

Environment Variable: MEILI_ENV
Default Value: development
User Viewable:
User Editable:
Disable analytics

Deactivates Meilisearch's built-in telemetry when provided.

Environment Variable: NO_ANALYTICS
Default Value: 0
User Viewable:
User Editable:
Dumps dir

Sets the directory where Meilisearch will create dump files.

Environment Variable: MEILI_DUMP_DIR
Default Value: /home/container/dumps
User Viewable:
User Editable:
DB PATH

Designates the location where database files will be created and retrieved.

Environment Variable: MEILI_DB_PATH
Default Value: /home/container/data.ms
User Viewable:
User Editable:
Log level

Defines how much detail should be present in Meilisearch's logs.

Environment Variable: MEILI_LOG_LEVEL
Default Value: INFO
User Viewable:
User Editable:
Config Path

Designates the location of the configuration file to load at launch.

Environment Variable: MEILI_CONFIG_FILE_PATH
Default Value: /home/container/config.toml
User Viewable:
User Editable:
Max threads

Sets the maximum number of threads Meilisearch can use during indexing

Environment Variable: MEILI_MAX_INDEXING_THREADS
Default Value: 2
User Viewable:
User Editable:
Install Script
#!/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 "-----------------------------------------"
Installation Imageghcr.io/ptero-eggs/installers:debianInstallation Entrypointbash