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

Отримати VPS arrow_forward

Typesense на VPS: встановлення, налаштування та обслуговування

calendar_month June 21, 2026 schedule 13 хв. читання visibility 32 переглядів
person
Valebyte Team
Typesense на VPS: встановлення, налаштування та обслуговування

Typesense на VPS — це високопродуктивна, відмовостійка та масштабована пошукова платформа з відкритим вихідним кодом, яку можна встановити та налаштувати на віртуальному приватному сервері для забезпечення швидкого та релевантного пошуку у ваших застосунках, базах даних або на веб-сайтах, пропонуючи повний контроль над інфраструктурою та даними.

У світі, де користувацький досвід безпосередньо залежить від швидкості та точності пошуку, вибір правильного пошукового рушія стає критично важливим. Typesense, завдяки своїй архітектурі, оптимізованій для низької затримки та високої пропускної здатності, є чудовою альтернативою складнішим або ресурсоємним рішенням, таким як Elasticsearch. Наша мета в Valebyte.com — надати вам покроковий посібник з розгортання Typesense на сервері, використовуючи переваги VPS-хостингу для максимальної продуктивності та гнучкості.

Ця стаття детально розгляне процес встановлення Typesense, його конфігурування, забезпечення безпеки за допомогою зворотного проксі та HTTPS, а також питання обслуговування, такі як резервні копії та оновлення. Ми також обговоримо, яка конфігурація VPS буде оптимальною для ваших завдань, щоб ви могли ефективно використовувати Typesense для свого проєкту.

Що таке Typesense і чому варто вибрати його для VPS?

Typesense — це сучасний пошуковий рушій з відкритим вихідним кодом, розроблений для забезпечення миттєвого (real-time) та фасетного пошуку з акцентом на швидкість, релевантність та простоту використання. Він написаний на C++ та оптимізований для роботи з великими обсягами даних, пропонуючи при цьому мінімальне споживання ресурсів порівняно з деякими аналогами. Вибравши Typesense self-hosted на VPS, ви отримуєте повний контроль над даними, безпекою та продуктивністю, що особливо важливо для проєктів з високими вимогами до приватності або специфічними навантаженнями.

Ключові особливості Typesense, які роблять його привабливим для розгортання на VPS:

  • Швидкість: Розроблений для забезпечення пошуку з низькою затримкою, навіть при мільйонах документів.
  • Релевантність: Вбудовані алгоритми для розумного сортування результатів, врахування одруків (typo tolerance) та синонімів.
  • Фасетний пошук: Дозволяє фільтрувати та категоризувати результати за безліччю атрибутів.
  • Масштабованість: Підтримує горизонтальне масштабування для розподілених навантажень.
  • Простота використання: Простий API та мінімальні вимоги до налаштування.
  • Відкритий вихідний код: Повна прозорість та можливість кастомізації.

Typesense проти аналогів: коротке порівняння

На ринку існує кілька потужних пошукових рушіїв, кожен зі своїми перевагами. Typesense часто порівнюють з Elasticsearch та Meilisearch. Ось коротка таблиця, яка допоможе зрозуміти його позиціонування:

Характеристика Typesense Elasticsearch Meilisearch
Основне призначення Миттєвий, фасетний пошук Повнотекстовий пошук, аналітика логів, BI Швидкий, релевантний пошук
Складність встановлення/керування Низька-Середня Висока Низька
Споживання ресурсів (RAM/CPU) Низьке-Середнє Високе Низьке-Середнє
Мова реалізації C++ Java Rust
Масштабованість Горизонтальна (кластер) Горизонтальна (кластер) Вертикальна, у перспективі горизонтальна
Толерантність до одруків Так, вбудована Так, через плагіни/налаштування Так, вбудована
Реальний приклад використання Пошук товарів в інтернет-магазині, документації Аналітика логів, моніторинг, складний пошук Пошук по блогу, невеликі каталоги

Як видно з таблиці, Typesense займає нішу між простотою Meilisearch та потужністю Elasticsearch, пропонуючи відмінний баланс для більшості веб-застосунків та сервісів, де критичною є швидкість пошуку.

Системні вимоги для Typesense на VPS

Перш ніж приступити до встановлення Typesense на сервері, важливо оцінити необхідні системні ресурси. Вимоги до VPS для Typesense залежать від обсягу даних, які ви плануєте індексувати, очікуваного навантаження (кількість пошукових запитів на секунду - QPS) та складності ваших запитів.

Мінімальні та рекомендовані конфігурації

Для невеликих проєктів або етапу розробки Typesense достатньо скромних ресурсів. Однак для продакшн-середовища з реальним навантаженням знадобляться потужніші VPS.

Мінімальні вимоги (для тестування або дуже малих проєктів до 100 000 документів):

  • CPU: 1 vCPU (2.0 GHz+)
  • RAM: 1 GB
  • Диск: 10 GB NVMe (SSD мінімум)
  • ОС: Ubuntu 20.04+, Debian 11+

Рекомендовані вимоги (для середніх проєктів до 5-10 мільйонів документів, до 50 QPS):

  • CPU: 2 vCPU (2.5 GHz+)
  • RAM: 4 GB
  • Диск: 50 GB NVMe (для оптимальної продуктивності I/O)
  • ОС: Ubuntu 22.04+, Debian 12+

Для великих проєктів (більше 10 мільйонів документів, 100+ QPS):

  • CPU: 4+ vCPU
  • RAM: 8 GB+ (залежить від розміру індексу, часто потрібно 2-3x розмір індексу)
  • Диск: 100 GB+ NVMe (для великих обсягів даних та високої швидкості читання/запису)
  • ОС: Ubuntu 22.04+, Debian 12+

Важливі зауваження:

  • RAM: Typesense зберігає індекс в оперативній пам'яті для максимальної швидкості. Тому обсяг RAM має бути достатнім для розміщення індексу та службових процесів. Якщо ваш індекс займає 2 GB, вам знадобиться мінімум 4 GB RAM, щоб система могла нормально функціонувати.
  • Диск: NVMe-диски значно перевершують звичайні SSD за швидкістю операцій вводу-виводу, що критично важливо для індексації та швидкого старту Typesense.
  • CPU: Кількість ядер процесора впливає на швидкість індексації та обробки паралельних запитів.
  • Мережа: Стабільне та швидке мережеве з'єднання необхідне для взаємодії між вашим застосунком та Typesense.

На Valebyte.com ви знайдете широкий вибір VPS-тарифів, які можна налаштувати під будь-які з цих вимог, забезпечуючи високу продуктивність та надійність для вашого Typesense.

Шукаєте надійний сервер для ваших проєктів?

VPS від $10/міс та виділені сервери від $9/міс з NVMe, DDoS-захистом та підтримкою 24/7.

Дивитися пропозиції →

Підготовка VPS до встановлення Typesense з Docker

Для максимальної гнучкості, ізоляції та простоти керування ми рекомендуємо встановлення Typesense Docker-контейнером. Це дозволяє легко розгортати, оновлювати та переносити Typesense між серверами. Перш ніж приступити до встановлення Typesense, необхідно підготувати ваш VPS.

Оновлення системи та встановлення Docker Engine

Підключіться до вашого VPS по SSH. Насамперед оновіть пакети системи:

sudo apt update && sudo apt upgrade -y

Далі, встановіть необхідні залежності для Docker:

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

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

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

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

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

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

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

Перевірте, що Docker встановлено та запущено:

sudo systemctl status docker

Ви повинні побачити статус "active (running)".

Встановлення Docker Compose

Docker Compose значно спрощує керування багатоконтейнерними застосунками. Встановимо його:

sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Перевірте версію Docker Compose:

docker-compose --version

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

sudo usermod -aG docker $USER

Після виконання цієї команди вам може знадобитися перезапустити SSH-сесію або вийти із системи та увійти знову, щоб зміни набули чинності.

rocket_launch Швидкий вибір

Шукаєте сервер, який просто працює?

Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.

Переглянути тарифи VPS arrow_forward

Покрокове встановлення Typesense на VPS через Docker Compose

Тепер, коли ваш VPS готовий, приступаємо до встановлення Typesense. Ми будемо використовувати Docker Compose для зручного розгортання.

Створення файлу docker-compose.yml для Typesense

Створіть директорію для вашого проєкту Typesense та перейдіть до неї:

mkdir ~/typesense-data
cd ~/typesense-data

Створіть файл `docker-compose.yml`:

nano docker-compose.yml

Вставте наступний вміст у файл. Не забудьте замінити YOUR_TYPESENSE_API_KEY на довгий, складний та унікальний рядок — це ваш ключ доступу до Typesense. Також переконайтеся, що порт 8108 не зайнятий на вашому сервері.

version: '3.8'

services:
  typesense:
    image: typesense/typesense:0.25.1 # Використовуйте актуальну стабільну версію
    container_name: typesense
    restart: always
    ports:
      - "8108:8108" # Порт для API Typesense
    volumes:
      - ./data:/data # Збереження даних Typesense на хості
    environment:
      TYPESENSE_API_KEY: YOUR_TYPESENSE_API_KEY # Обов'язково замініть!
      TYPESENSE_DATA_DIR: /data
      TYPESENSE_LOG_DIR: /data/log
      TYPESENSE_MAX_MEMORY_LIMIT_BYTES: 4294967296 # Обмеження RAM у байтах (4GB), скоригуйте під свій VPS
      TYPESENSE_PERSISTENT_SNAPSHOT_INTERVAL_SECONDS: 3600 # Інтервал знімків
      TYPESENSE_LISTEN_PORT: 8108
      TYPESENSE_ENABLE_CORS: "true" # Увімкнути CORS, якщо ваш застосунок звертатиметься з іншого домену
    ulimits:
      nofile:
        soft: 65536
        hard: 65536
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8108/health"]
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 20s

Пояснення до конфігурації:

  • image: typesense/typesense:0.25.1: Вказує Docker-образ Typesense та його версію. Рекомендується використовувати конкретну версію, а не latest.
  • container_name: typesense: Присвоює контейнеру зрозуміле ім'я.
  • restart: always: Гарантує автоматичний перезапуск Typesense після збоїв або перезавантаження VPS.
  • ports: - "8108:8108": Мапінг порту 8108 хоста на порт 8108 всередині контейнера.
  • volumes: - ./data:/data: Монтування локальної папки ./data в контейнер за шляхом /data. Це гарантує збереження всіх даних Typesense (індексів) навіть при перестворенні контейнера.
  • TYPESENSE_API_KEY: Критично важливий параметр! Цей ключ буде використовуватися для автентифікації при взаємодії з API Typesense. Генеруйте складний ключ (наприклад, за допомогою openssl rand -hex 32).
  • TYPESENSE_MAX_MEMORY_LIMIT_BYTES: Обмежує обсяг оперативної пам'яті, яку може використовувати Typesense. Встановіть значення, що відповідає вашому VPS. Наприклад, 4294967296 байт = 4 GB.
  • TYPESENSE_ENABLE_CORS: "true": Якщо ваш клієнтський застосунок звертатиметься до Typesense з іншого домену, увімкніть CORS. В іншому випадку, для безпеки, краще залишити "false" або налаштувати суворіше.
  • ulimits: Збільшує кількість відкритих файлів, що важливо для продуктивності Typesense при роботі з великою кількістю документів.
  • healthcheck: Визначає перевірку стану контейнера, щоб Docker міг визначити, коли Typesense готовий до роботи.

Запуск Typesense

Збережіть файл `docker-compose.yml` та запустіть Typesense:

docker-compose up -d

Команда -d запускає контейнер у фоновому режимі. Щоб переконатися, що контейнер запущено, виконайте:

docker-compose ps

Ви повинні побачити контейнер typesense зі статусом Up.

Перевірити логи Typesense можна командою:

docker-compose logs -f typesense

На цьому етапі Typesense self-hosted вже запущено на вашому VPS та він доступний за IP-адресою сервера на порту 8108.

Налаштування Reverse Proxy (Nginx/Caddy) та HTTPS

Прямий доступ до Typesense по порту 8108 не є безпечним та зручним рішенням для продакшн-середовища. Рекомендується використовувати зворотний проксі-сервер (Nginx або Caddy) для маршрутизації трафіку, забезпечення HTTPS-шифрування та додаткового захисту. Це також дозволить вам використовувати доменне ім'я замість IP-адреси.

Встановлення Nginx та Certbot

Встановіть Nginx:

sudo apt install -y nginx

Встановіть Certbot для автоматичного отримання та оновлення SSL-сертифікатів Let's Encrypt:

sudo apt install -y certbot python3-certbot-nginx

Конфігурація Nginx для Typesense

Створіть новий файл конфігурації для вашого домену (наприклад, typesense.yourdomain.com):

sudo nano /etc/nginx/sites-available/typesense.conf

Вставте наступну конфігурацію, замінивши typesense.yourdomain.com на ваш реальний домен:

server {
    listen 80;
    server_name typesense.yourdomain.com;

    location / {
        proxy_pass http://localhost:8108;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off; # Вимкнути буферизацію для real-time
        proxy_request_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Connection ""; # Для HTTP/1.1
    }
}

Створіть символічне посилання на sites-enabled та перевірте синтаксис Nginx:

sudo ln -s /etc/nginx/sites-available/typesense.conf /etc/nginx/sites-enabled/
sudo nginx -t

Якщо синтаксис у порядку, перезапустіть Nginx:

sudo systemctl restart nginx

Отримання HTTPS-сертифіката з Certbot

Тепер отримайте SSL-сертифікат для вашого домену за допомогою Certbot:

sudo certbot --nginx -d typesense.yourdomain.com

Дотримуйтесь інструкцій Certbot. Він автоматично налаштує Nginx для використання HTTPS та додасть перенаправлення з HTTP на HTTPS. Після цього ваш Typesense буде доступний за https://typesense.yourdomain.com.

Альтернатива: Caddy для Typesense

Caddy — це сучасний веб-сервер, який автоматично керує HTTPS-сертифікатами, що робить його налаштування ще простішим, ніж Nginx+Certbot. Якщо ви віддаєте перевагу 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
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install -y caddy

Створіть або відредагуйте файл /etc/caddy/Caddyfile:

sudo nano /etc/caddy/Caddyfile

Додайте наступну конфігурацію, замінивши typesense.yourdomain.com на ваш домен:

typesense.yourdomain.com {
    reverse_proxy localhost:8108 {
        # Додаткові налаштування проксі, якщо потрібні, наприклад:
        # header_up Host {host}
        # header_up X-Real-IP {remote_ip}
        # header_up X-Forwarded-For {remote_ip}
        # header_up X-Forwarded-Proto {scheme}
    }
}

Перевірте конфігурацію Caddy та перезапустіть його:

sudo caddy validate
sudo systemctl restart caddy

Caddy автоматично отримає та налаштує HTTPS для вашого домену. Це робить встановлення Caddy на VPS відмінним вибором для багатьох проєктів.

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

Регулярне обслуговування є ключем до стабільної роботи Typesense. Це включає створення резервних копій даних та своєчасні оновлення.

Резервне копіювання даних Typesense

Оскільки Typesense зберігає всі свої дані в папці /data (яку ми змонтували в ./data на хості), резервне копіювання зводиться до архівування цієї папки. Важливо виконувати резервне копіювання, коли Typesense перебуває у стабільному стані або з використанням вбудованих механізмів.

Метод 1: Копіювання змонтованої папки

Найпростіший спосіб — скопіювати папку ~/typesense-data/data. Однак для консистентності даних рекомендується спочатку створити "знімок" індексу через API Typesense, а потім скопіювати його.

Приклад команди для створення знімка (ззовні контейнера):

curl -X POST "http://localhost:8108/operations/snapshot" \
-H "Content-Type: application/json" \
-H "X-Typesense-API-Key: YOUR_TYPESENSE_API_KEY" \
-d '{"snapshot_path": "/data/snapshots/$(date +%Y%m%d%H%M%S)"}'

Потім ви можете заархівувати папку ~/typesense-data/data/snapshots/. Або, якщо ви не використовуєте знімки, просто заархівуйте всю папку ~/typesense-data/data:

tar -czvf typesense_backup_$(date +%Y%m%d%H%M%S).tar.gz ~/typesense-data/data

Зберігайте резервні копії в безпечному місці, бажано на іншому сервері або в хмарному сховищі.

Метод 2: Резервне копіювання зсередини контейнера

Ви також можете використовувати docker exec для створення резервної копії:

docker exec typesense curl -X POST "http://localhost:8108/operations/snapshot" \
-H "Content-Type: application/json" \
-H "X-Typesense-API-Key: YOUR_TYPESENSE_API_KEY" \
-d '{"snapshot_path": "/data/snapshots/$(date +%Y%m%d%H%M%S)"}'
# Потім скопіювати файл знімка з хоста

Автоматизуйте цей процес за допомогою cron-завдань для регулярного резервного копіювання.

Оновлення Typesense Docker

Оновлення Typesense, встановленого через Docker Compose, — це простий процес:

  1. Зупиніть поточний контейнер:
    cd ~/typesense-data
    docker-compose down
  2. Змініть версію в `docker-compose.yml`:

    Відредагуйте файл docker-compose.yml та змініть рядок image: typesense/typesense:0.25.1 на нову, актуальну версію (наприклад, 0.26.0).

  3. Завантажте новий образ та запустіть контейнер:
    docker-compose pull typesense
    docker-compose up -d
  4. Перевірте статус:
    docker-compose ps

    Переконайтеся, що контейнер запущено та він працює з новою версією.

Перед оновленням завжди рекомендується ознайомитися з примітками до випуску (release notes) нової версії Typesense, оскільки іноді можуть знадобитися зміни у структурі даних або конфігурації.

rocket_launch Швидкий вибір

Шукаєте сервер, який просто працює?

Valebyte VPS — NVMe, підтримка 24/7, розгортання за 60 секунд.

Переглянути тарифи VPS arrow_forward

Вибір оптимальної конфігурації VPS для Typesense під реальне навантаження

Вибір відповідного VPS-тарифу для Typesense — це баланс між продуктивністю та вартістю. Valebyte.com пропонує різні конфігурації, які можуть задовольнити будь-які потреби. Головне — правильно оцінити ваше майбутнє навантаження.

Фактори, що впливають на вибір VPS

При виборі VPS для Typesense врахуйте наступні ключові фактори:

  1. Обсяг даних: Скільки документів ви плануєте індексувати? Яким буде загальний розмір індексу на диску (і в RAM)? Typesense зберігає індекс у пам'яті для швидкості, тому RAM є критичним ресурсом. Приблизне правило: для індексу розміром X GB знадобиться 2X-3X GB RAM.
  2. Кількість запитів на секунду (QPS): Скільки пошукових запитів ваш Typesense має обробляти одночасно? Високий QPS вимагає більше CPU і, можливо, більше RAM для кешування.
  3. Складність запитів: Наскільки складними будуть ваші пошукові запити (фасетний пошук, фільтри, сортування за кількома полями)? Складні запити споживають більше CPU.
  4. Швидкість індексації: Як часто ви будете додавати/оновлювати документи? Процес індексації також вимагає ресурсів CPU та I/O диска.
  5. Географічне розташування: Розміщуйте VPS ближче до вашої цільової аудиторії для мінімізації затримок.

Приклади конфігурацій VPS від Valebyte.com

Ось кілька прикладів конфігурацій VPS, які можуть підійти для різних сценаріїв використання Typesense, з приблизною оцінкою вартості:

Сценарій CPU RAM Диск (NVMe) Приблизна вартість (Valebyte.com) Опис
Розробка / Малий проєкт 1 vCPU 2 GB 20 GB Від $5/міс Ідеально для тестування, персональних проєктів, сайтів з 10-50 тис. документів та низьким навантаженням (до 10 QPS).
Середній проєкт / Стартап 2 vCPU 4-8 GB 50-100 GB Від $10-20/міс Підходить для інтернет-магазинів, блогів, документації зі 100 тис. - 5 млн документів та помірним навантаженням (до 50 QPS). Наприклад, для Docmost або Lemmy.
Великий проєкт / Високе навантаження 4-8 vCPU 16-32 GB 200-500 GB Від $40-80/міс Для великих каталогів, порталів з мільйонами документів (5-50 млн) та високим навантаженням (100+ QPS). Можливо, знадобиться кластер Typesense.
Дуже великий / Ентерпрайз 8+ vCPU 64+ GB 500 GB+ Від $100+/міс Для корпоративних рішень, агрегаторів, пошукових систем із сотнями мільйонів документів та дуже високим навантаженням, часто у кластерній конфігурації.

Рекомендації щодо оптимізації:

  • Моніторинг: Обов'язково налаштуйте моніторинг вашого VPS (CPU, RAM, диск I/O) та самого Typesense, щоб своєчасно реагувати на зростання навантаження та масштабувати ресурси.
  • NVMe-диски: Завжди обирайте VPS з NVMe-дисками для Typesense. Це значно покращить продуктивність індексації та відновлення після перезапуску.
  • Обмеження пам'яті: Використовуйте параметр TYPESENSE_MAX_MEMORY_LIMIT_BYTES у docker-compose.yml, щоб запобігти споживанню Typesense всієї доступної RAM, залишивши місце для ОС та інших процесів.
  • Кешування на стороні клієнта: Використовуйте кешування пошукових запитів на стороні вашого застосунку для зниження навантаження на Typesense.
  • Оптимізація схеми даних: Правильно спроєктована схема даних Typesense (індексовані поля, поля для сортування, фасети) суттєво впливає на продуктивність.

Наші VPS-сервери надають надійну основу для розгортання Typesense, а гнучкі тарифні плани дозволяють підібрати оптимальну конфігурацію під ваші потреби, чи то невеликий проєкт, чи високо навантажений сервіс. Наприклад, NocoDB або Activepieces часто використовують внутрішні пошукові механізми, які можна значно покращити за допомогою Typesense.

Висновки

Встановлення Typesense на VPS через Docker Compose — це ефективний спосіб отримати потужний та швидкий пошуковий рушій під повним вашим контролем. Дотримуючись цього покрокового посібника, ви зможете розгорнути Typesense, налаштувати безпечний доступ через зворотний проксі з HTTPS та забезпечити його стабільну роботу за допомогою резервних копій та оновлень, а також вибрати оптимальну конфігурацію VPS від Valebyte.com, яка ідеально відповідає вимогам вашого проєкту.

Готові вибрати сервер?

VPS та виділені сервери в 72+ країнах з миттєвою активацією та повним root-доступом.

Почати зараз →
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.