Установка Reindexer

Для Reindexer доступно 3 варианта использования:

  1. Автономный сервер (Standalone) . Reindexer работает как отдельный сервер. Приложения-клиенты подключаются к нему по сети по протоколам HTTP, RPC или gRPC.
  2. Встроенный сервер (Built-in server). Встраивается в приложение как статическая библиотека. При этом другие приложения-клиенты могут подключаться к Reindexer по сети.
  3. Встроенный (Built-in, Embedded). Reindexer встраивается в приложение, которое он обслуживает, как статическая библиотека.

Установка Reindexer как автономного (Standalone) сервера

Установка из официального Docker-образа

Самый простой вариант развертывания СУБД Reindexer. Перед его реализацией проверьте наличие в системе (и при необходимости установите) Docker. Для установки и запуска сервера БД этим способом выполните следующие действия:

  1. Загрузите официальный Docker-образ Reindexer из Dockerhub.

    Для этого используйте команду

    docker pull reindexer/reindexer
    
  2. Запустите контейнер из загруженного образа командой

    docker run -p9088:9088 -p6534:6534 -it reindexer/reindexer
    

После запуска сервера web-интерфейс для управления Reindexer будет доступен по адресу http://127.0.0.1:9088/face.

Интерактивная документация REST API будет доступна по адресу http://127.0.0.1:9088/swagger.

Установка на Linux

На Linux СУБД Reindexer устанавливается через менеджер пакетов YUM или программу для установки, обновления и удаления программных пакетов apt.

Ниже приведены команды для установки Reindexer для разных дистрибутивов Linux.

Centos 7

Установка происходит через YUM.

yum install -y epel-release yum-utils
rpm --import https://repo.reindexer.io/RX-KEY.GPG
yum-config-manager --add-repohttps://repo.reindexer.io/centos-7/x86_64/
yum update
yum install reindexer-server

Redos 7

Установка происходит через YUM.

yum install -y epel-release yum-utils
rpm --import https://repo.reindexer.io/RX-KEY.GPG
yum-config-manager --add-repo https://repo.reindexer.io/redos-7/x86_64/
yum update
yum install reindexer-server

Fedora 38

Установка происходит через YUM.

yum install -y epel-release yum-utils
rpm --import https://repo.reindexer.io/RX-KEY.GPG
yum-config-manager --add-repohttps://repo.reindexer.io/fedora-38/x86_64/
yum update
yum install reindexer-server

Fedora 39

Установка происходит через YUM.

yum install -y epel-release yum-utils
rpm --import https://repo.reindexer.io/RX-KEY.GPG
yum-config-manager --add-repohttps://repo.reindexer.io/fedora-39/x86_64/
yum update
yum install reindexer-server

Ubuntu Focal

Установка происходит через apt.

curl https://repo.reindexer.io/RX-KEY.GPG | apt-key add
echo "deb https://repo.reindexer.io/ubuntu-focal /" >> /etc/apt/sources.list
apt update
apt install reindexer-server

Ubuntu Jammy

Установка происходит через apt.

curl https://repo.reindexer.io/RX-KEY.GPG | apt-key add
echo "deb https://repo.reindexer.io/ubuntu-jammy /" >> /etc/apt/sources.list
apt update
apt install reindexer-server

Debian 11 (bullseye)

Установка происходит через apt.

curl https://repo.reindexer.io/RX-KEY.GPG | apt-key add
echo "deb https://repo.reindexer.io/debian-bullseye /" >> /etc/apt/sources.list
apt update
apt install reindexer-server

Debian 12 (bookworm)

Установка происходит через apt.

curl https://repo.reindexer.io/RX-KEY.GPG | apt-key add
echo "deb https://repo.reindexer.io/debian-bookworm /" >> /etc/apt/sources.list
apt update
apt install reindexer-server

AltLinux P10

Установка происходит через apt-get. Требуется, чтобы предварительно были установлены пакеты ca-certificates и apt-https.

echo "rpm https://repo.reindexer.io/altlinux p10/x86_64 reindexer" > /etc/apt/sources.list.d/reindexer.list
apt-get update
apt-get install reindexer-server

Установка на macOS

Для утановки Reindexer на macOS можно воспользоваться менеджером пакетов Homebrew.

Команды для установки:

brew tap restream/reindexer
brew install reindexer

Установка на Windows

Для Windows Reindexer доступен в виде скомпилированного бинарного файла (.exe) для 32-разрядных и 64-разрядных систем. Скачайте и запустите его.

Установка из исходных кодов (from sources)

Это гибкий и универсальный способ, который подходит для разных архитектур и платформ. Разработчиками Reindexer протестированы: ARM32, AArch64, AMD64, i386.

Перед инсталляцией Reindexer этим способом проверьте наличие в системе или установите:

  • Утилиту автоматической сборки программ из исходного кода Cmake;
  • Тулчейн C++17;
  • LevelDB.

Следующий шаг — установка зависимостей. Для сборки Reindexer требуется g++ 8+, clang 7+ или MSVC 2019+. Для установки зависимостей воспользуйтесь скриптом:

curl -L https://github.com/Restream/reindexer/raw/master/dependencies.sh | bash -s

Затем установите Reindexer:

git clone https://github.com/Restream/reindexer
cd reindexer
mkdir -p build && cd build
cmake ..
make -j4
# установка в систему
sudo make install

Подключение Go-модуля

Для Standalone-режима Go-байндинг не требует каких-то дополнительных библиотек и может быть добавлен в Go-приложение следующим образом:

go get -a github.com/restream/reindexer@master

Установка Reindexer для режимов Built-in и Built-in server

Embeded-варианты использования Reindexer, требуют наличия в системе static-библиотек (libreindexer, libreindexer_server и libreindexer_server_resources). Установить их можно либо из предсобранных пакетов, либо собрав Reindexer из исходных кодов (описано выше).

Подключение Go-модуля

В случае с Built-in и Built-in server для Go есть несколько вариантов использования:

  1. В виде модуля в go.mod

    В директории Go-приложения, содержащего go.mod:

    go get -a github.com/restream/reindexer@master
    

    В этом варианте static-библиотеки Reindexer будут подключаться через pkg-config, поэтому требуется, чтобы они были заранее установлены в системе.

  2. С использованием директивы replace

    Если требуется возможность модифицировать С++ часть Reindexer в процессе работы с Go-приложением, то можно использовать в go.mod директиву replace. Сам модуль Reindexer должен быть загружен в GOPATH. В этом случае также есть возможность провести сборку через go generate и отдельная установка static-библиотек Reindexer в систему не потребуется. При таком варианте сборки пути к библиотекам будут напрямую сохранены в go-файлы байндинга, а pkg-config задействован не будет.

    # Получение исходных кодов Reindexer
    go get -a github.com/restream/reindexer@master
    # Сборка для built-in
    go generate $GOPATH/src/reindexer/bindings/builtin
    # Сборка для built-in server (опционально)
    go generate $GOPATH/src/reindexer/bindings/builtinserver
    

    После загрузки и сборки Reindexer его требуется добавить в go.mod приложения

    # Переход в директорию приложения
    cd /your/app/path
    # Добавление Reindexer в go.mod
    go get -a github.com/restream/reindexer@master
    # Добавление replace-директивы для использования локальной версии Reindexer из GOPATH
    go mod edit -replace github.com/restream/reindexer=$GOPATH/src/github.com/restream/reindexer
    
  3. Вендоринг

    Штатный Go-вендоринг полноценно не работает с CGO. Из коробки возможно такой подход похволяет вендорить только Go-часть Reindexer’a. В качестве альтернативы можно использовать утилиту vend. С ней после вендоринга будет возможность вызвать go generate -mod=vendor для сборки CGO-части.