ZincSearch – лёгкий и быстрый поисковый движок с открытым исходным кодом, предназначенный для полнотекстового поиска и индексирования данных. ZincSearch написан на языке Go и распространяется в виде одного бинарного файла. Это делает его установку и запуск максимально простыми даже на маломощных виртуальных серверах.
Движок ориентирован на разработчиков и администраторов, которым нужен функционал, похожий на Elasticsearch или OpenSearch, но без присущей им сложности и высоких требований к ресурсам. Система поддерживает REST API, JSON-документы и базовую аутентификацию. Данный аспект позволяет быстро интегрировать её в веб-приложения, системы логирования, а также внутренние сервисы.
В статье разберём, как установить ZincSearch на виртуальный сервер под управлением Ubuntu или Debian.
Как установить ZincSearch на Ubuntu или Debian
В данном примере установка ZincSearch будет осуществляться при помощи бинарного файла. Для установки, во-первых, создайте каталог, в котором будут находиться файлы ZincSearch:
$ sudo mkdir /opt/zincsearch
Затем перейдите в созданный каталог:
$ cd /opt/zincsearch
На странице релизов ZincSearch скопируйте ссылку на дистрибутив, предназначенный для установки на Linux-систему.

Затем при помощи утилиты wget и скопированной ссылки загрузите архив дистрибутива в текущую директорию:
$ sudo wget https://github.com/zincsearch/zincsearch/releases/download/v0.4.10/zincsearch_0.4.10_linux_x86_64.tar.gz
После чего распакуйте загруженный архив:
$ sudo tar -xvf zincsearch_0.4.10_linux_x86_64.tar.gz
Запуск ZincSearch в качестве системного сервиса
На следующем этапе настройте работу ZincSearch в качестве системного сервиса. Такой подход позволяет превратить его в полноценный постоянно работающий компонент сервера. В данном режиме поисковый движок автоматически стартует при загрузке системы, не требует ручного запуска после перезагрузок и работает в фоновом режиме, не привязываясь к текущей пользовательской сессии.
Чтобы это сделать, сначала создайте в системе пользователя, под именем которого будет работать создаваемая служба:
$ sudo useradd -r -s /usr/sbin/nologin zincsearch
В данном случае параметр -r означает, что создаваемый пользователь является системным, а не обычным. В свою очередь, параметр -s /usr/sbin/nologin задаёт для учётной записи специальную оболочку, которая запрещает интерактивный вход в систему.
Далее измените владельца и группу для каталога с установленным ZincSearch и всех файлов внутри него:
$ sudo chown -R zincsearch:zincsearch /opt/zincsearch
В результате все файлы в /opt/zincsearch станут принадлежащими пользователю zincsearch, от имени которого запускается сервис.
Затем создайте юнит-файл для нового сервиса:
$ sudo nano /etc/systemd/system/zincsearch.service
В файл скопируйте следующее содержимое:
[Unit]
Description=ZincSearch
After=network.target
[Service]
User=zincsearch
WorkingDirectory=/opt/zincsearch
ExecStart=/opt/zincsearch/zincsearch
Environment=ZINC_FIRST_ADMIN_USER=admin
Environment=ZINC_FIRST_ADMIN_PASSWORD=StrongP@ssw0rd
Restart=always
[Install]
WantedBy=multi-user.target
При этом в параметре Environment=ZINC_FIRST_ADMIN_USER в качестве значения задайте имя администратора, которое будет создано при первом запуске, а в параметре Environment=ZINC_FIRST_ADMIN_PASSWORD – пароль для этого пользователя.
После чего закройте файл с сохранением изменений и обновите конфигурацию systemd, чтобы новый сервис стал доступен системе:
$ sudo systemctl daemon-reload
Затем установите службу в автозагрузку с одновременным её запуском:
$ sudo systemctl enable --now zincsearch
И, чтобы убедиться в успешном старте, выведите текущий статус сервиса:
$ systemctl status zincsearch
Вывод команды не должен содержать каких-либо сообщений об ошибках.

После успешного запуска службы проверьте доступность веб-интерфейса ZincSearch. Для этого сначала откройте доступ к серверу по порту 4080, который слушает веб-интерфейс. Чтобы это сделать, добавьте в брандмауэр UFW соответствующее разрешающее правило:
$ sudo ufw allow 4080/tcp
Затем откройте браузер и перейдите на http://X.X.X.X:4080, где вместо X.X.X.X укажите IP-адрес сервера либо доменное имя, привязанное к данному IP-адресу.

Для аутентификации используйте имя пользователя и пароль, указанные при создании юнит-файла. Сразу после успешного подключения к веб-интерфейсу перейдите в основное меню, далее – User, где откройте для редактирования учётную запись admin и измените пароль этого пользователя.

