Bedrud Документация

Корневой Makefile — центральный инструмент оркестрации сборки монорепозитория Bedrud. Он предоставляет команды для разработки, сборки и развёртывания на всех платформах.

Использование

make <target>
make help       # Показать все доступные цели

Цели разработки

ЦельОписание
make initУстановить все зависимости (LiveKit + конфиг + bun + Go)
make devЗапустить LiveKit + сервер (hot reload) + web параллельно
make dev-webЗапустить только dev-сервер фронтенда
make dev-serverЗапустить backend-сервер + LiveKit
make dev-server-hotЗапустить backend с Air hot reload
make dev-apiЗапустить только backend, без LiveKit
make dev-livekitЗапустить локальный сервер LiveKit
make dev-siteЗапустить dev-сервер Astro-сайта
make dev-iosОткрыть iOS-проект в Xcode
make dev-androidОткрыть Android-проект в Android Studio

make init

Полная настройка нового окружения разработки:

  1. Загружает бинарник LiveKit-сервера в ~/.local/bin/ (если нет в PATH)
  2. Создаёт server/config.yaml из шаблона config.local.yaml (если отсутствует)
  3. Создаёт заглушку LiveKit в server/internal/livekit/bin/livekit-server
  4. Устанавливает air для Go hot reload (если не установлен)
  5. Устанавливает зависимости: apps/web (bun), apps/site (bun), server (go mod)

make dev

Запускает три dev-сервиса параллельно. Нажмите Ctrl+C, чтобы остановить все:

  • LiveKit на localhost:7880
  • Сервер на localhost:8090
  • Web на localhost:3000

Цели сборки

ЦельОписание
make buildСобрать фронтенд + backend (встроенный)
make build-frontСобрать только фронтенд
make build-backСобрать только backend
make build-distСобрать продакшен-тарболл linux/amd64
make build-siteСобрать Astro-сайт (SSG)

make build

Полная продакшен-сборка:

  1. Запускает bun run build в apps/web — собирает React-приложение
  2. Копирует apps/web/dist/client/*server/frontend/
  3. Собирает Go-бинарник с встроенным фронтендом

Результат: server/dist/bedrud

make build-dist

Создаёт сжатый, готовый к продакшену дистрибутив:

  1. Запускает make build
  2. Кросс-компилирует для linux/amd64 с обрезанными отладочными символами
  3. Создаёт dist/bedrud_linux_amd64.tar.xz

Цели Desktop

ЦельОписание
make dev-desktopСобрать и запустить десктоп-приложение (debug)
make build-desktopСобрать оптимизированный release-бинарник

Локальный одиночный бинарник

ЦельОписание
make local-buildСобрать фронтенд + backend в один бинарник
make local-runСобрать + запустить локально (SQLite, встроенный LiveKit)

make local-run

Собирает и запускает одиночный бинарник с локальным конфигом:

CONFIG_PATH=server/config.local.yaml server/dist/bedrud run

Откройте http://localhost:8090 после запуска.

Документация API

ЦельОписание
make swagger-genРегенерировать Swagger-документацию из аннотаций
make swagger-openОткрыть Swagger UI в браузере
make scalar-openОткрыть Scalar UI в браузере

Требуется swag CLI (go install github.com/swaggo/swag/cmd/swag@latest). Сервер должен быть запущен для swagger-open и scalar-open.

Цели Android

ЦельОписание
make build-android-debugСобрать debug APK
make build-androidСобрать release APK (требуется keystore)
make install-androidУстановить release APK на подключённое устройство
make release-androidСобрать + установить release APK

Пути вывода APK

  • Debug: apps/android/app/build/outputs/apk/debug/app-debug.apk
  • Release: apps/android/app/build/outputs/apk/release/app-release.apk

Цели iOS

ЦельОписание
make build-iosСобрать iOS-архив (Release)
make export-iosЭкспортировать IPA из архива
make build-ios-simСобрать для iOS Simulator (Debug)

Пути вывода

  • Архив: apps/ios/build/Bedrud.xcarchive
  • IPA: apps/ios/build/export/Bedrud.ipa

Цель развёртывания

ЦельОписание
make deploy ARGS=...Запустить CLI-инструмент развёртывания

Пример

make deploy ARGS="--auto-config --ip 1.2.3.4 --user root --domain meet.example.com"

Запускает Python CLI из tools/cli/bedrud.py с переданными аргументами.

Тестирование

ЦельОписание
make test-backЗапустить тесты backend (go test -v -count=1 ./...)

Цели очистки

ЦельОписание
make cleanУдалить артефакты сборки и скомпилированные бинарники
make full-cleanУдалить артефакты + все установленные зависимости

make clean

Удаляет:

  • dist/ — дистрибутивные тарболлы
  • server/dist/ — скомпилированный серверный бинарник
  • apps/web/dist/ — вывод сборки React
  • Содержимое server/frontend/ — встроенные ассеты фронтенда
  • apps/android/app/build/ — вывод сборки Android
  • apps/ios/build/ — вывод сборки iOS
  • apps/site/dist/ — вывод сборки Astro-сайта
  • target/ — вывод сборки Rust/Cargo

make full-clean

Всё, что делает clean, плюс:

  • apps/web/node_modules/
  • apps/site/node_modules/
  • apps/android/.gradle/
  • apps/android/build/
  • Кэш Go-модулей (go clean -modcache)

После этого выполните make init для переустановки зависимостей.