Настройка окружения
В этом руководстве описан процесс развёртывания полного локального окружения для разработки, отладки и сборки компонентов RUSEON Core.
Системные требования
Убедитесь, что на вашей рабочей станции установлены следующие инструменты:
| Инструмент | Минимальная версия | Назначение |
|---|---|---|
| Go | 1.26+ | Компиляция сервера и CLI-утилит |
| Node.js | 24+ (рекомендуется LTS) | Сборка и запуск веб-интерфейса на React 19 |
| npm | 10+ | Управление зависимостями фронтенда |
| Docker & Docker Compose | Актуальная версия | Запуск E2E-тестов Testcontainers и генераторов тестовых RTSP-потоков |
| Git | 2.40+ | Контроль версий |
1. Клонирование репозитория
Склонируйте исходный код проекта и перейдите в корневую директорию:
git clone https://github.com/RUSEGAL/ruseon-core.git
cd ruseon-core2. Настройка и сборка бэкенда (Go)
RUSEON Core компилируется стандартными средствами Go. Для сборки CGO не требуется (CGO_ENABLED=0).
Загрузка зависимостей
go mod download
go mod verifyСборка исполняемых файлов
Сборка основного сервера и утилиты администрирования:
# Сборка бинарника сервера
CGO_ENABLED=0 go build -o bin/ruseon cmd/server/main.go
# Сборка бинарника CLI
CGO_ENABLED=0 go build -o bin/ruseon-cli cmd/ruseon-cli/main.goДля Windows сборка выполняется аналогично:
go build -o bin/ruseon.exe cmd/server/main.go
go build -o bin/ruseon-cli.exe cmd/ruseon-cli/main.go3. Настройка и сборка веб-интерфейса (React 19)
Фронтенд расположен в директории web/ и построен на React 19, Vite и TypeScript.
Установка зависимостей Node.js
cd web
npm installСборка статических файлов для встраивания
Сервер на Go встраивает собранный фронтенд на этапе компиляции через директиву go:embed. Для генерации статики выполните:
npm run buildСобранное SPA-приложение сохраняется в web/dist/ и автоматически включается в бинарный файл сервера.
Режим разработки с Hot Module Replacement (HMR)
Для интерактивной разработки пользовательского интерфейса запустите Vite dev-сервер:
npm run devПо умолчанию dev-сервер открывается на http://localhost:5173 и проксирует API-запросы (/api/*, /live/*, /webrtc/*) на Go-сервер (http://localhost:8080).
4. Запуск сервера в режиме разработки
Скопируйте пример конфигурационного файла:
cp config.example.yaml config.yamlЗапустите сервер:
./bin/ruseon -config config.yamlСервер создаст базу данных BadgerDB в директории ./data/db, откроет HTTP-порт 8080 и подготовит каналы для приёма видеопотоков.
Проверить работоспособность можно запросом к пробе здоровья:
curl -i http://localhost:8080/livezОжидаемый ответ: HTTP/1.1 200 OK с JSON-статусом компонентов.
Полезные команды разработки
# Запуск тестов бэкенда с детектором состояний гонки
go test -race ./...
# Проверка линтером golangci-lint
golangci-lint run
# Проверка фронтенда линтером
cd web && npm run lint