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
NameDescriptionEnvironment VariableDefault ValueUser ViewableUser Editable
Master keyIn 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.MEILI_MASTER_KEYYesYes
EnvironmentConfigures the instance's environment. Value must be either production or development.MEILI_ENVdevelopmentYesYes
Disable analyticsDeactivates Meilisearch's built-in telemetry when provided.NO_ANALYTICS0YesYes
Dumps dirSets the directory where Meilisearch will create dump files.MEILI_DUMP_DIR/home/container/dumpsYesNo
DB PATHDesignates the location where database files will be created and retrieved.MEILI_DB_PATH/home/container/data.msYesNo
Log levelDefines how much detail should be present in Meilisearch's logs.MEILI_LOG_LEVELINFOYesYes
Config PathDesignates the location of the configuration file to load at launch.MEILI_CONFIG_FILE_PATH/home/container/config.tomlYesNo
Max threadsSets the maximum number of threads Meilisearch can use during indexingMEILI_MAX_INDEXING_THREADS2YesNo
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 "-----------------------------------------"