Skip to content

Настройка окружения ​

В этом руководстве описан процесс развёртывания полного локального окружения для разработки, отладки и сборки компонентов RUSEON Core.

Системные требования ​

Убедитесь, что на вашей рабочей станции установлены следующие инструменты:

ИнструментМинимальная версияНазначение
Go1.26+Компиляция сервера и CLI-утилит
Node.js24+ (рекомендуется LTS)Сборка и запуск веб-интерфейса на React 19
npm10+Управление зависимостями фронтенда
Docker & Docker ComposeАктуальная версияЗапуск E2E-тестов Testcontainers и генераторов тестовых RTSP-потоков
Git2.40+Контроль версий

1. Клонирование репозитория ​

Склонируйте исходный код проекта и перейдите в корневую директорию:

bash
git clone https://github.com/RUSEGAL/ruseon-core.git
cd ruseon-core

2. Настройка и сборка бэкенда (Go) ​

RUSEON Core компилируется стандартными средствами Go. Для сборки CGO не требуется (CGO_ENABLED=0).

Загрузка зависимостей ​

bash
go mod download
go mod verify

Сборка исполняемых файлов ​

Сборка основного сервера и утилиты администрирования:

bash
# Сборка бинарника сервера
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 сборка выполняется аналогично:

powershell
go build -o bin/ruseon.exe cmd/server/main.go
go build -o bin/ruseon-cli.exe cmd/ruseon-cli/main.go

3. Настройка и сборка веб-интерфейса (React 19) ​

Фронтенд расположен в директории web/ и построен на React 19, Vite и TypeScript.

Установка зависимостей Node.js ​

bash
cd web
npm install

Сборка статических файлов для встраивания ​

Сервер на Go встраивает собранный фронтенд на этапе компиляции через директиву go:embed. Для генерации статики выполните:

bash
npm run build

Собранное SPA-приложение сохраняется в web/dist/ и автоматически включается в бинарный файл сервера.

Режим разработки с Hot Module Replacement (HMR) ​

Для интерактивной разработки пользовательского интерфейса запустите Vite dev-сервер:

bash
npm run dev

По умолчанию dev-сервер открывается на http://localhost:5173 и проксирует API-запросы (/api/*, /live/*, /webrtc/*) на Go-сервер (http://localhost:8080).

4. Запуск сервера в режиме разработки ​

Скопируйте пример конфигурационного файла:

bash
cp config.example.yaml config.yaml

Запустите сервер:

bash
./bin/ruseon -config config.yaml

Сервер создаст базу данных BadgerDB в директории ./data/db, откроет HTTP-порт 8080 и подготовит каналы для приёма видеопотоков.

Проверить работоспособность можно запросом к пробе здоровья:

bash
curl -i http://localhost:8080/livez

Ожидаемый ответ: HTTP/1.1 200 OK с JSON-статусом компонентов.

Полезные команды разработки ​

bash
# Запуск тестов бэкенда с детектором состояний гонки
go test -race ./...

# Проверка линтером golangci-lint
golangci-lint run

# Проверка фронтенда линтером
cd web && npm run lint

Связанная документация ​

Released under the MIT License.