bolt Valebyte VPS від $4/міс — NVMe, запуск за 60 секунд.

Отримати VPS arrow_forward
eco Початковий Туторіал

Встановлення MeiliSearch

calendar_month Jul 20, 2026 schedule 16 хв. читання visibility 63 переглядів
info

Потрібен сервер для цього гайду? Ми пропонуємо виділені сервери та VPS у 50+ країнах з миттєвим налаштуванням.

Потрібен сервер для цього гайду?

Розгорніть VPS або виділений сервер за хвилини.

Встановлення MeiliSearch на VPS: Швидкий та потужний пошук для ваших застосунків

TL;DR

У цьому посібнику ми покроково налаштуємо та запустимо MeiliSearch — високопродуктивний пошуковий рушій з відкритим вихідним кодом — на вашому віртуальному або виділеному сервері. Ви навчитеся встановлювати MeiliSearch з використанням Docker, конфігурувати його для безпечного доступу через HTTPS за допомогою Caddy, а також налаштовувати базове обслуговування та резервне копіювання, щоб забезпечити надійну роботу пошуку для ваших веб-застосунків.

  • Налаштування безпечного та продуктивного пошукового сервера на VPS.
  • Використання Docker для простої та надійної установки MeiliSearch.
  • Конфігурація HTTPS з автоматичним керуванням сертифікатами через Caddy.
  • Основи захисту сервера за допомогою Fail2ban та UFW.
  • Створення простого скрипту для резервного копіювання даних MeiliSearch.
  • Рекомендації щодо вибору оптимального VPS-конфігу для пошукових завдань.

Що ми налаштовуємо і навіщо

У сучасному світі швидкість доступу до інформації є критично важливою. Для будь-якого веб-застосунку, інтернет-магазину, блогу або системи управління контентом наявність швидкого та релевантного пошуку є ключовим фактором користувацького досвіду. Саме це завдання вирішує MeiliSearch — потужний і легкий пошуковий рушій з відкритим вихідним кодом, написаний на Rust.

MeiliSearch надає RESTful API, який дозволяє легко інтегрувати його в будь-який застосунок. Він відрізняється високою швидкістю індексації та пошуку, релевантністю результатів "з коробки" завдяки розумним алгоритмам ранжування, підтримкою фасетного пошуку, фільтрації та морфології. У підсумку читач отримає повністю функціонуючий сервер MeiliSearch, готовий до прийому даних та обробки пошукових запитів від його застосунків.

Існують різні підходи до реалізації пошуку: використання хмарних сервісів (наприклад, Algolia, Elastic Cloud) або самостійне розгортання (self-hosted) таких рішень, як Elasticsearch, Solr або MeiliSearch. Хмарні сервіси зручні, але можуть бути дорогими при великих обсягах даних або запитів, а також накладають обмеження на контроль над інфраструктурою. Самостійне розгортання на VPS або виділеному сервері, навпаки, забезпечує повний контроль, гнучкість і часто нижчі операційні витрати в довгостроковій перспективі. MeiliSearch у цьому контексті виділяється своєю простотою встановлення, низькими вимогами до ресурсів порівняно з Elasticsearch та відмінною продуктивністю, що робить його ідеальним вибором для розгортання на власному VPS.

Який VPS-конфіг потрібен під це завдання

Вибір відповідного VPS-конфігу для MeiliSearch залежить від обсягу даних, які ви плануєте індексувати, та очікуваного навантаження на пошук. MeiliSearch ефективно використовує ресурси, але для стабільної роботи потрібні певні мінімуми.

Мінімальні вимоги:

  • CPU: 1-2 ядра. MeiliSearch добре масштабується з кількістю ядер, особливо при індексації.
  • RAM: 2 ГБ. Цього вистачить для невеликих та середніх обсягів даних (до кількох мільйонів документів) та помірного навантаження. MeiliSearch завантажує індекс в оперативну пам'ять для швидкого пошуку.
  • Диск: 20-40 ГБ NVMe SSD. Швидкість диска критична для індексації та запису даних. NVMe значно перевершує SATA SSD.
  • Мережа: 100 Мбіт/с. Для більшості застосунків цього достатньо.

Рекомендований VPS-план для старту (актуально на 2026 рік):

Для більшості проєктів, де обсяг даних не перевищує 10-20 мільйонів документів і очікується до кількох сотень пошукових запитів на хвилину, оптимальним буде VPS наступної конфігурації:

  • CPU: 2-4 vCPU (наприклад, Intel Xeon E5 або AMD EPYC).
  • RAM: 4-8 ГБ. Це забезпечить запас для більшого індексу та операційної системи.
  • Диск: 50-100 ГБ NVMe SSD. Достатньо для зберігання індексу та системних файлів.
  • Мережа: 1 Гбіт/с. Забезпечить швидку передачу даних між застосунком та MeiliSearch.

Можна взяти VPS із зазначеними характеристиками, щоб забезпечити стабільну роботу MeiliSearch із запасом на зростання.

Коли потрібен dedicated, а не VPS:

Виділений сервер стає необхідним, коли:

  • Обсяг індексованих даних перевищує сотні мільйонів або мільярди документів.
  • Потрібна дуже висока пропускна здатність для тисяч пошукових запитів на секунду.
  • Застосунок має суворі вимоги до затримок (latency) та стабільної продуктивності, яку VPS не може гарантувати через "шумних сусідів".
  • Необхідний повний контроль над апаратним забезпеченням, включаючи специфічні процесори (наприклад, з великим кешем) або RAID-масиви.

У таких випадках варто розглянути відповідний dedicated сервер.

Локація: на що впливає

Розташування сервера впливає на затримку (latency) між вашим основним застосунком та MeiliSearch, а також між користувачами та вашим застосунком. Бажано розміщувати VPS з MeiliSearch якомога ближче до основного застосунку, щоб мінімізувати затримки при індексації та пошуку. Якщо ваш застосунок знаходиться в Європі, вибирайте європейський дата-центр. Якщо цільова аудиторія в Північній Америці, то й сервер має бути там.

Підготовка сервера

Перед встановленням MeiliSearch необхідно виконати базове налаштування безпеки та оновити операційну систему. Ми будемо використовувати Ubuntu Server 24.04 LTS, актуальну та підтримувану версію на 2026 рік.

1. Підключення по SSH та створення користувача з sudo:

Після отримання даних для доступу до VPS, підключіться до нього як користувач root:


ssh root@ВАША_IP_АДРЕСА

Створіть нового користувача для повсякденної роботи (наприклад, meiliuser) та додайте його до групи sudo:


adduser meiliuser
usermod -aG sudo meiliuser

Встановіть SSH-ключі для нового користувача. Скопіюйте ваш публічний SSH-ключ з локальної машини:


# На вашій локальній машині
ssh-copy-id meiliuser@ВАША_IP_АДРЕСА

Вимкніть вхід по SSH для root та вхід за паролем, залишивши тільки вхід за ключами для meiliuser. Відредагуйте файл /etc/ssh/sshd_config:


sudo nano /etc/ssh/sshd_config

Знайдіть та змініть наступні рядки:


PermitRootLogin no
PasswordAuthentication no

Перезапустіть SSH-сервіс:


sudo systemctl restart sshd

Вийдіть із сесії root та увійдіть як meiliuser.

2. Оновлення системи:

Завжди починайте з оновлення пакетної бази та встановлених пакетів:


sudo apt update         # Оновлюємо список доступних пакетів
sudo apt upgrade -y     # Оновлюємо всі встановлені пакети до останніх версій
sudo apt autoremove -y  # Видаляємо непотрібні залежності

3. Встановлення базових утиліт та Fail2ban:

Встановимо необхідні утиліти та Fail2ban для захисту SSH від брутфорсу:


sudo apt install -y curl wget git htop fail2ban unzip

Fail2ban налаштований за замовчуванням для захисту SSH. Щоб увімкнути його, достатньо встановити. Для більш тонкого налаштування можна створити файл /etc/fail2ban/jail.local:


sudo nano /etc/fail2ban/jail.local

Додайте наступний вміст:


[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h

Перезапустіть Fail2ban:


sudo systemctl restart fail2ban

4. Налаштування брандмауера UFW:

Увімкніть UFW (Uncomplicated Firewall) та дозвольте тільки необхідні порти:


sudo ufw allow OpenSSH       # Дозволяємо SSH (порт 22)
sudo ufw allow http          # Дозволяємо HTTP (порт 80)
sudo ufw allow https         # Дозволяємо HTTPS (порт 443)
sudo ufw enable              # Вмикаємо брандмауер
sudo ufw status verbose      # Перевіряємо статус брандмауера

Підтвердіть увімкнення брандмауера, натиснувши y.

Встановлення ПЗ — покроково

Ми будемо встановлювати MeiliSearch з використанням Docker, оскільки це найбільш гнучкий та рекомендований спосіб, що забезпечує ізоляцію та просте керування версіями. Актуальні версії на 2026 рік: Docker Engine 26.x, MeiliSearch 1.9.x, Caddy 2.8.x.

1. Встановлення Docker Engine:

Встановіть необхідні пакети для Docker:


sudo apt install -y ca-certificates curl gnupg lsb-release

Додайте офіційний GPG ключ Docker:


sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

Додайте репозиторій Docker до APT джерел:


echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Оновіть список пакетів та встановіть Docker Engine, Docker CLI та containerd:


sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Додайте поточного користувача до групи docker, щоб запускати команди Docker без sudo:


sudo usermod -aG docker meiliuser

Вийдіть з SSH та увійдіть знову, щоб зміни груп набули чинності. Перевірте встановлення Docker:


docker run hello-world  # Запускаємо тестовий контейнер Docker

2. Встановлення MeiliSearch з Docker Compose:

Створіть директорію для MeiliSearch та файл docker-compose.yml:


mkdir ~/meilisearch
cd ~/meilisearch
nano docker-compose.yml

Вставте наступний вміст у docker-compose.yml. Вкажіть актуальну версію MeiliSearch (наприклад, v1.9) та ваш власний MEILI_MASTER_KEY:


version: '3.8'
services:
  meilisearch:
    image: getmeili/meilisearch:v1.9 # Використовуємо актуальну версію MeiliSearch
    container_name: meilisearch
    ports:
      - "127.0.0.1:7700:7700" # Прив'язуємо до локального інтерфейсу, доступ буде через Caddy
    volumes:
      - ./data.ms:/meili_data # Директорія для зберігання даних індексу
    environment:
      - MEILI_MASTER_KEY=ВАШ_СЕКРЕТНИЙ_МАСТЕР_КЛЮЧ # Обов'язково замініть на складний ключ
      - MEILI_ENV=production # Вказуємо, що це продакшн-оточення
      - MEILI_HTTP_ADDR=0.0.0.0:7700 # MeiliSearch буде слухати на всіх інтерфейсах всередині контейнера
    restart: always # Автоматичний перезапуск контейнера у разі збою

Запустіть MeiliSearch за допомогою Docker Compose:


docker compose up -d # Запускаємо контейнер MeiliSearch у фоновому режимі

Перевірте, що контейнер запущено:


docker ps # Показує запущені контейнери

Ви повинні побачити контейнер meilisearch, що працює на порту 7700 (прив'язаний до 127.0.0.1).

3. Встановлення Caddy (зворотний проксі та HTTPS):

Caddy — це потужний і простий у використанні веб-сервер, який автоматично налаштовує HTTPS з Let's Encrypt. Він ідеально підходить для проксування запитів до MeiliSearch.

Додайте GPG ключ Caddy:


sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg

Додайте репозиторій Caddy:


curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list

Оновіть список пакетів та встановіть Caddy:


sudo apt update
sudo apt install -y caddy

Перевірте статус Caddy:


sudo systemctl status caddy # Перевіряємо, що Caddy запущений і працює

Конфігурація

Тепер, коли MeiliSearch і Caddy встановлені, необхідно налаштувати Caddy для проксіювання запитів до MeiliSearch та забезпечення HTTPS-доступу.

1. Налаштування Caddyfile:

Відредагуйте основний конфігураційний файл Caddy — Caddyfile:


sudo nano /etc/caddy/Caddyfile

Видаліть весь вміст за замовчуванням і вставте наступне, замінивши your-domain.com на ваше доменне ім'я (наприклад, search.mydomain.com) і ВАШ_СЕКРЕТНЫЙ_МАСТЕР_КЛЮЧ на той самий ключ, що ви використовували в docker-compose.yml:


your-domain.com {
    # Автоматичне отримання SSL-сертифіката від Let's Encrypt
    tls {
        dns cloudflare {env.CLOUDFLARE_API_TOKEN} # Приклад для Cloudflare. Використовуйте ваш DNS-провайдер або залиште tls, якщо використовуєте A/AAAA записи
    }

    # Захист API ключем (додатковий рівень безпеки)
    header Authorization "Bearer ВАШ_СЕКРЕТНЫЙ_МАСТЕР_КЛЮЧ"

    # Проксіювання запитів до MeiliSearch, запущеного на локальному порту 7700
    reverse_proxy 127.0.0.1:7700 {
        header_up Host {host}
        header_up X-Real-IP {remote_ip}
        header_up X-Forwarded-Proto {scheme}
    }

    # Налаштування логування (опціонально)
    log {
        output file /var/log/caddy/meilisearch_access.log
        format json
    }

    # Обробка помилок (опціонально)
    handle_errors {
        respond "{http.error.status_code} {http.error.status_text}" {http.error.status_code}
    }
}

Важливо: Для автоматичного отримання TLS-сертифіката з використанням DNS-провайдера (як у прикладі з Cloudflare), вам потрібно буде встановити відповідний плагін Caddy та налаштувати змінні середовища. Якщо ви використовуєте A/AAAA записи і ваш домен доступний ззовні, то достатньо просто вказати tls без додаткових опцій, і Caddy сам отримає сертифікат. Якщо ви використовуєте DNS-плагін, переконайтеся, що змінні середовища (наприклад, CLOUDFLARE_API_TOKEN) встановлені у файлі служби Caddy або через системні змінні.

Для Caddy з Cloudflare DNS, встановіть плагін:


# Приклад встановлення плагіна Caddy для Cloudflare DNS.
# Цей крок може відрізнятися залежно від вашого DNS-провайдера.
# Якщо ви не використовуєте DNS-плагін, пропустіть цей крок.
sudo apt install -y caddy-dns-cloudflare # Або інший плагін, наприклад caddy-dns-digitalocean

Якщо використовуєте DNS-плагін, додайте змінні середовища до файлу служби Caddy. Відредагуйте файл /etc/systemd/system/caddy.service.d/override.conf (створіть, якщо його немає):


sudo systemctl edit caddy

Додайте наступні рядки (замініть на ваш токен):


[Service]
Environment="CLOUDFLARE_API_TOKEN=ВАШ_API_ТОКЕН_CLOUDFLARE"

Збережіть файл і перезавантажте Caddy:


sudo systemctl daemon-reload # Перезавантажуємо systemd, щоб він побачив зміни у службі
sudo systemctl restart caddy # Перезапускаємо Caddy для застосування конфігурації та отримання сертифіката
sudo systemctl status caddy  # Перевіряємо статус Caddy

Переконайтеся, що Caddy успішно запустився та отримав SSL-сертифікат. У логах не повинно бути помилок, пов'язаних з TLS.

2. Перевірка працездатності:

Використовуйте curl для перевірки доступності MeiliSearch через Caddy:


curl -I https://your-domain.com/health # Перевіряємо статус здоров'я MeiliSearch

Якщо все налаштовано правильно, ви повинні отримати відповідь з HTTP статусом 200 OK. Також можете перевірити версію MeiliSearch:


curl -X GET 'https://your-domain.com/version' \
  -H 'Authorization: Bearer ВАШ_СЕКРЕТНЫЙ_МАСТЕР_КЛЮЧ'

Ви повинні побачити JSON-відповідь з інформацією про версію MeiliSearch.

3. Відкриття порту в брандмауері (якщо не зроблено раніше):

Переконайтеся, що порти 80 і 443 відкриті в UFW:


sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

Резервні копії та обслуговування

Надійне резервне копіювання та регулярне обслуговування є критично важливими для будь-якого продакшн-сервісу, включаючи MeiliSearch.

1. Що резервувати:

  • Дані MeiliSearch: Основний обсяг даних, включаючи індекси, налаштування та документи, зберігається в директорії, зазначеній у docker-compose.yml (у нашому випадку ./data.ms).
  • Конфігураційні файли: docker-compose.yml, /etc/caddy/Caddyfile, а також будь-які файли, пов'язані з налаштуваннями системи або брандмауера.

2. Простий скрипт авторезервування:

Створимо простий скрипт для створення знімка даних MeiliSearch та їх архівації. MeiliSearch має вбудовану функцію створення знімків (snapshots).

Створіть директорію для резервних копій та скрипт:


mkdir -p ~/backups/meilisearch
nano ~/backup_meilisearch.sh

Вставте наступний вміст, замінивши ВАШ_СЕКРЕТНЫЙ_МАСТЕР_КЛЮЧ та your-domain.com:


#!/bin/bash

# Шлях до директорії MeiliSearch
MEILI_DIR="/home/meiliuser/meilisearch"
# Шлях для зберігання резервних копій
BACKUP_DIR="/home/meiliuser/backups/meilisearch"
# Домен MeiliSearch
MEILI_DOMAIN="your-domain.com"
# Майстер-ключ MeiliSearch
MEILI_MASTER_KEY="ВАШ_СЕКРЕТНЫЙ_МАСТЕР_КЛЮЧ"
# Ім'я файлу резервної копії
BACKUP_FILENAME="meilisearch_$(date +%Y%m%d%H%M%S).dump"

echo "Починаємо створення дампу MeiliSearch..."

# Створюємо дамп MeiliSearch через API
curl -X POST "https://${MEILI_DOMAIN}/dumps" \
  -H "Authorization: Bearer ${MEILI_MASTER_KEY}" \
  -H "Content-Type: application/json"

# Чекаємо кілька секунд, поки дамп створиться.
# У продакшені краще перевіряти статус дампу через API /dumps/{dump_uid}/status
sleep 10

# Копіюємо створений дамп з Docker-контейнера
# Спочатку знайдемо UID останнього дампу
LATEST_DUMP_UID=$(curl -X GET "https://${MEILI_DOMAIN}/dumps" \
  -H "Authorization: Bearer ${MEILI_MASTER_KEY}" \
  | jq -r '.[-1].uid')

# Якщо jq не встановлено, можна встановити: sudo apt install -y jq
# Якщо LATEST_DUMP_UID порожній, то щось пішло не так
if [ -z "$LATEST_DUMP_UID" ]; then
    echo "Помилка: Не вдалося отримати UID останнього дампу."
    exit 1
fi

echo "Копіюємо дамп ${LATEST_DUMP_UID} з контейнера..."
docker cp meilisearch:/meili_data/dumps/${LATEST_DUMP_UID}.dump ${BACKUP_DIR}/${BACKUP_FILENAME}

if [ $? -eq 0 ]; then
    echo "Дамп успішно скопійовано до ${BACKUP_DIR}/${BACKUP_FILENAME}"
    # Очищаємо старі резервні копії (залишаємо останні 7 днів)
    find ${BACKUP_DIR} -type f -name 'meilisearch_*.dump' -mtime +7 -delete
    echo "Старі резервні копії видалено."
else
    echo "Помилка при копіюванні дампу."
fi

echo "Резервне копіювання завершено."

Зробіть скрипт виконуваним:


chmod +x ~/backup_meilisearch.sh

Додайте скрипт до cron для щоденного виконання (наприклад, о 3 ранку):


crontab -e

Додайте наступний рядок в кінець файлу:


0 3 * * * /home/meiliuser/backup_meilisearch.sh >> /var/log/meilisearch_backup.log 2>&1

3. Куди зберігати резервні копії:

Зберігати резервні копії на тому ж сервері, що й основний сервіс, небезпечно. Рекомендується використовувати:

  • Зовнішнє S3-сумісне сховище: Наприклад, AWS S3, DigitalOcean Spaces, Backblaze B2. Для автоматичного завантаження можна використовувати утиліти на кшталт s3cmd або rclone.
  • Окремий VPS: Невеликий VPS, призначений виключно для зберігання резервних копій. Можна використовувати rsync по SSH для синхронізації.
  • Локальне мережеве сховище (NAS): Якщо у вас є власна інфраструктура.

Для прикладу з rclone (встановіть sudo apt install -y rclone):


# Приклад додавання завантаження в S3 до скрипта backup_meilisearch.sh
# ... після рядка "Резервне копіювання завершено."
echo "Завантажуємо дамп в S3..."
rclone copy ${BACKUP_DIR}/${BACKUP_FILENAME} remote:bucket_name/meilisearch_backups/
if [ $? -eq 0 ]; then
    echo "Дамп успішно завантажено в S3."
else
    echo "Помилка при завантаженні дампу в S3."
fi

Попередньо налаштуйте rclone за допомогою rclone config.

4. Оновлення:

  • Оновлення ОС: Регулярно запускайте sudo apt update && sudo apt upgrade -y. Плануйте це раз на місяць або в міру виходу важливих оновлень безпеки.
  • Оновлення Docker: Оновлюйте Docker Engine в міру виходу стабільних версій.
  • Оновлення MeiliSearch: Оновлення MeiliSearch зазвичай зводиться до зміни тегу образу в docker-compose.yml (наприклад, з v1.9 на v1.10) та перезапуску контейнера:
    
                cd ~/meilisearch
                # Змініть версію в docker-compose.yml
                docker compose pull meilisearch # Завантажуємо новий образ
                docker compose up -d           # Перестворюємо контейнер з новим образом
                

    Rolling vs. Maintenance Window: Для MeiliSearch, який є критично важливим сервісом пошуку, оновлення краще проводити у "вікно обслуговування" (maintenance window) з попереднім повідомленням користувачів. Хоча Docker дозволяє швидко перемикатися між версіями, завжди є ризик несумісності або проблем з міграцією даних. Завжди робіть резервну копію перед оновленням MeiliSearch.

  • Оновлення Caddy: Caddy оновлюється через APT: sudo apt update && sudo apt upgrade -y caddy. Після оновлення Caddy автоматично перезапуститься.

Вирішення проблем + FAQ

MeiliSearch не запускається або недоступний

Що перевірити: Переконайтеся, що Docker-контейнер MeiliSearch запущено (docker ps). Перевірте логи контейнера (docker logs meilisearch) на наявність помилок. Переконайтеся, що порт 7700 не зайнятий іншим застосунком (sudo netstat -tulnp | grep 7700) і що MeiliSearch прив'язаний до 127.0.0.1, як зазначено в docker-compose.yml. Також перевірте, що Caddy запущено (sudo systemctl status caddy) і його логи (sudo journalctl -u caddy).

Як виправити: Якщо контейнер не запускається, виправте помилки в docker-compose.yml (одруківки, невірний майстер-ключ). Якщо порт зайнятий, змініть його або зупиніть інший застосунок. Якщо Caddy не може отримати сертифікат, перевірте DNS-записи домену та коректність налаштування DNS-плагіна Caddy (якщо використовується).

Повільна індексація або пошук

Що перевірити: Моніторинг ресурсів сервера (htop, docker stats meilisearch). Перевірте використання CPU, RAM та дискової підсистеми. Повільний диск (не NVMe) може бути вузьким місцем під час індексації. Велика кількість документів або складні фільтри можуть уповільнювати пошук. Переконайтеся, що MeiliSearch має достатньо оперативної пам'яті для завантаження індексу.

Як виправити: Збільште обсяг RAM або перейдіть на VPS з швидшим NVMe диском. Оптимізуйте структуру даних, зменшіть кількість полів для індексації або використовуйте фасети ефективніше. Розгляньте можливість масштабування MeiliSearch на більш потужний сервер або розподіл навантаження, якщо це можливо.

Помилка 401 Unauthorized при доступі до API

Що перевірити: Переконайтеся, що ви передаєте коректний MEILI_MASTER_KEY у заголовку Authorization: Bearer ВАШ_КЛЮЧ. Перевірте, що ключ у docker-compose.yml і в Caddyfile (якщо ви використовуєте Caddy для додавання заголовка) збігаються.

Як виправити: Уважно перевірте майстер-ключ. Якщо ви його забули, ви можете змінити його в docker-compose.yml і перезапустити контейнер, але це може вплинути на існуючі застосунки, що використовують старий ключ. Переконайтеся, що Caddy правильно додає заголовок Authorization, якщо його налаштовано для цього.

Не вдається отримати SSL-сертифікат для домену

Що перевірити: Переконайтеся, що ваш домен коректно вказує на IP-адресу вашого VPS (A/AAAA записи). Перевірте, що порти 80 і 443 відкриті в UFW. Якщо ви використовуєте DNS-плагін Caddy, переконайтеся, що API-токен для вашого DNS-провайдера коректний і має необхідні дозволи.

Як виправити: Виправте DNS-записи. Відкрийте порти 80 і 443 у брандмауері. Перевірте ще раз API-токен та дозволи для DNS-плагіна. Подивіться логи Caddy (sudo journalctl -u caddy) для більш детальної інформації про помилки Let's Encrypt.

Який VPS-конфіг мінімально підійде?

Що перевірити: Для невеликих проєктів з обсягом даних до кількох мільйонів документів і невисоким навантаженням (до кількох запитів на секунду), мінімально підійде VPS з 2 vCPU, 2 ГБ RAM і 20-40 ГБ NVMe SSD. Цього буде достатньо для базової роботи MeiliSearch.

Як виправити: Завжди орієнтуйтеся на обсяг даних. Якщо індекс зростає, то й вимоги до RAM зростатимуть. Зі збільшенням навантаження на пошук, знадобиться більше CPU. Завжди краще мати невеликий запас ресурсів, щоб уникнути деградації продуктивності.

Що обрати — VPS чи dedicated для цього завдання?

Що перевірити: Вибір залежить від масштабу вашого проєкту. VPS підходить для більшості середніх проєктів, де критична гнучкість, швидке розгортання та економічність. Він ідеальний для стартапів, невеликих та середніх веб-застосунків.

Як виправити: Dedicated сервер необхідний для дуже великих обсягів даних (сотні мільйонів документів і більше), високого навантаження (тисячі запитів на секунду) або суворих вимог до стабільної продуктивності без впливу "сусідів". Він також дає повний контроль над апаратним забезпеченням, що може бути важливим для специфічної оптимізації або безпеки.

Висновки та наступні кроки

Вітаємо! Ви успішно встановили та налаштували MeiliSearch на вашому VPS, забезпечивши швидкий та потужний пошук для ваших застосунків, захищений HTTPS за допомогою Caddy. Тепер ваш пошуковий рушій готовий до індексації даних та обробки пошукових запитів.

Наступні кроки для подальшого розвитку та оптимізації:

  • Інтеграція із застосунком: Використовуйте офіційні SDK MeiliSearch для вашої мови програмування (JavaScript, PHP, Python, Ruby тощо) для надсилання даних на індексацію та виконання пошукових запитів.
  • Моніторинг продуктивності: Налаштуйте систему моніторингу (наприклад, Prometheus + Grafana) для відстеження метрик MeiliSearch, таких як час відповіді, кількість документів, використання ресурсів.
  • Оптимізація індексу: Вивчіть документацію MeiliSearch щодо налаштування релевантності, синонімів, стоп-слів, фасетів та фільтрів, щоб максимально покращити якість пошуку для ваших користувачів.

Чи був цей гайд корисним?

Ваш відгук допомагає нам покращувати гайди.

Share this post:

Надішліть гайд тому, кому він може стати в пригоді.

Telegram VKVK WhatsApp Facebook LinkedIn XX

Встановлення Meilisearch на VPS: швидкий та потужний пошук для ваших застосунків
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.