Bedrud مستندات

Makefile ریشه Makefile ابزار مرکزی ارکستراسیون ساخت برای monorepo Bedrud است. دستوراتی برای توسعه، ساخت و استقرار در تمام پلتفرم‌ها فراهم می‌کند.

استفاده

make <target>
make help       # نمایش همه اهداف موجود

اهداف توسعه

هدفتوضیحات
make initنصب تمام وابستگی‌ها (LiveKit + پیکربندی + bun + Go)
make devاجرای LiveKit + سرور (بارگذاری مجدد خودکار) + وب به طور همزمان
make dev-webاجرای فقط سرور توسعه فرانت‌اند
make dev-serverاجرای سرور بک‌اند + LiveKit
make dev-server-hotاجرای بک‌اند با Air (بارگذاری مجدد خودکار)
make dev-apiاجرای فقط بک‌اند، بدون LiveKit
make dev-livekitاجرای سرور LiveKit محلی
make dev-siteاجرای سرور توسعه سایت 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. ایجاد placeholder جایگذاری LiveKit در server/internal/livekit/bin/livekit-server
  4. نصب air برای بارگذاری مجدد خودکار Go (اگر نصب نیست)
  5. نصب وابستگی‌ها: apps/web (bun)، apps/site (bun)، server (go mod)

make dev

هر سه سرویس توسعه را به طور همزمان شروع می‌کند. برای توقف همه Ctrl+C را فشار دهید:

  • LiveKit در localhost:7880
  • سرور در localhost:8090
  • وب در localhost:3000

اهداف ساخت

هدفتوضیحات
make buildساخت فرانت‌اند + بک‌اند (جاسازی‌شده)
make build-frontساخت فقط فرانت‌اند
make build-backساخت فقط بک‌اند
make build-distساخت tarball تولید 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

اهداف دسکتاپ

هدفتوضیحات
make dev-desktopساخت و اجرای برنامه دسکتاپ (debug)
make build-desktopساخت باینری release بهینه‌شده

باینری محلی واحد

هدفتوضیحات
make local-buildساخت فرانت‌اند + بک‌اند در یک باینری
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 در مرورگر

به CLI swag نیاز دارد (go install github.com/swaggo/swag/cmd/swag@latest). سرور باید در حال اجرا باشد برای swagger-open و scalar-open.

اهداف Android

هدفتوضیحات
make build-android-debugساخت APK debug
make build-androidساخت APK release (نیاز به keystore)
make install-androidنصب APK release روی دستگاه متصل
make release-androidساخت + نصب APK release

مسیرهای خروجی 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 (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"

CLI Python در tools/cli/bedrud.py را با آرگومان‌های ارائه‌شده اجرا می‌کند.

تست

هدفتوضیحات
make test-backاجرای تست‌های بک‌اند (go test -v -count=1 ./...)

اهداف پاکسازی

هدفتوضیحات
make cleanحذف مصنوعات ساخت و باینری‌های کامپایل‌شده
make full-cleanحذف مصنوعات + تمام وابستگی‌های نصب‌شده

make clean

حذف می‌کند:

  • dist/ — tarball‌های توزیع
  • 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 را اجرا کنید تا وابستگی‌ها دوباره نصب شوند.