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
راهاندازی کامل محیط توسعه جدید:
- دانلود باینری سرور LiveKit به
~/.local/bin/(اگر در PATH نیست) - ایجاد
server/config.yamlاز قالبconfig.local.yaml(اگر وجود ندارد) - ایجاد placeholder جایگذاری LiveKit در
server/internal/livekit/bin/livekit-server - نصب
airبرای بارگذاری مجدد خودکار Go (اگر نصب نیست) - نصب وابستگیها:
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/— خروجیهای ساخت Androidapps/ios/build/— خروجیهای ساخت iOSapps/site/dist/— خروجی ساخت سایت Astrotarget/— خروجی ساخت 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 را اجرا کنید تا وابستگیها دوباره نصب شوند.