Перейти к содержимому

Установка из исходников

Сборка из Go-исходников — для разработки, контрибьюции, кастомных сборок и платформ без готовых артефактов. Если вам не нужна правка кода — используйте пакеты или бинарные релизы.

ИнструментЗачем
Go 1.26+компиляция всех модулей (версия зафиксирована в go.work)
makeтаргеты сборки и проверок (make build / make test)
gitклонирование репозитория

Точная версия toolchain — в go.work корня репозитория (директива go). Если go version ниже — обновите Go, иначе сборка упадёт на toolchain-проверке.

Код организован как Go-workspace (go.work) из нескольких модулей. Исполняемые файлы собираются из:

  • keeper/cmd/keeperkeeper
  • soul/cmd/soulsoul
  • soulctl/cmd/soulctlsoulctl
  • soul-lint/cmd/soul-lintsoul-lint

Остальные модули (proto, proto/plugin, shared, sdk) — это поперечный код и контракты, которые тянут исполняемые файлы; отдельных артефактов они не дают.

Клонировать и собрать все исполняемые файлы одной командой:

Окно терминала
git clone <repo-url> soul-stack
cd soul-stack
make build

Результат — исполняемые файлы в bin-каталогах модулей: keeper/bin/keeper, soul/bin/soul, soulctl/bin/soulctl, soul-lint/bin/soul-lint. Версия инжектится линкером при сборке (make build), поэтому keeper version печатает реальную версию, а не 0.0.0-dev.

Проверить версию сборки:

Окно терминала
./keeper/bin/keeper version
./soul/bin/soul version
./soulctl/bin/soulctl --version
Окно терминала
make test # unit-тесты по всем модулям

Полный локальный гейт (форматирование, vet, сборка, тесты, проверка сгенерированного кода и ссылок) — make check.

Если нужны пакеты под свою раздачу — make pkg собирает deb + rpm для keeper / soul / soul-lint (требует установленного nfpm). soulctl пакетом не упаковывается — он распространяется исполняемым файлом.

Собранные исполняемые файлы требуют той же внешней инфраструктуры, что и пакетная установка: обязательный контур — PostgreSQL + Redis + Vault (все три; Keeper проверяет каждый на старте и не стартует без любого из них). Провижининг, конфиги, bootstrap первого оператора и онбординг агента — Из deb/rpm-пакетов, начиная с шага 2.

Для быстрого локального знакомства без прод-провижининга — Quick Start.