Корневой 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
Полная настройка нового окружения разработки:
- Загружает бинарник LiveKit-сервера в
~/.local/bin/(если нет в PATH) - Создаёт
server/config.yamlиз шаблонаconfig.local.yaml(если отсутствует) - Создаёт заглушку LiveKit в
server/internal/livekit/bin/livekit-server - Устанавливает
airдля Go hot reload (если не установлен) - Устанавливает зависимости:
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
Полная продакшен-сборка:
- Запускает
bun run buildвapps/web— собирает React-приложение - Копирует
apps/web/dist/client/*→server/frontend/ - Собирает Go-бинарник с встроенным фронтендом
Результат: server/dist/bedrud
make build-dist
Создаёт сжатый, готовый к продакшену дистрибутив:
- Запускает
make build - Кросс-компилирует для
linux/amd64с обрезанными отладочными символами - Создаёт
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/— вывод сборки Androidapps/ios/build/— вывод сборки iOSapps/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 для переустановки зависимостей.