Bedrud Belgeler

Kök dizindeki Makefile, Bedrud monoreposu için merkezi derleme orkestrasyon aracıdır. Tüm platformlarda geliştirme, derleme ve dağıtım için komutlar sağlar.

Kullanım

make <hedef>
make help       # Tüm kullanılabilir hedefleri göster

Geliştirme Hedefleri

HedefAçıklama
make initTüm bağımlılıkları kurar (LiveKit + yapılandırma + bun + Go)
make devLiveKit + sunucu (hot reload) + web’i eşzamanlı çalıştırır
make dev-webYalnızca ön uç geliştirme sunucusunu çalıştırır
make dev-serverArka uç sunucusu + LiveKit çalıştırır
make dev-server-hotAir ile hot reload arka ucu çalıştırır
make dev-apiYalnızca arka ucu çalıştırır, LiveKit yok
make dev-livekitYerel LiveKit sunucusunu çalıştırır
make dev-siteAstro site geliştirme sunucusunu çalıştırır
make dev-iosiOS projesini Xcode’da açar
make dev-androidAndroid projesini Android Studio’da açar

make init

Yeni geliştirme ortamının tam kurulumu:

  1. LiveKit sunucu ikilisini ~/.local/bin/ dizinine indirir (PATH’te yoksa)
  2. config.local.yaml şablonundan server/config.yaml oluşturur (yoksa)
  3. server/internal/livekit/bin/livekit-server konumunda LiveKit gömme yer tutucusu oluşturur
  4. Go hot reload için air kurar (kurulu değilse)
  5. Bağımlılıkları kurar: apps/web (bun), apps/site (bun), server (go mod)

make dev

Üç geliştirme servisini eşzamanlı başlatır. Durdurmak için Ctrl+C tuşlarına basın:

  • LiveKit localhost:7880 adresinde
  • Sunucu localhost:8090 adresinde
  • Web localhost:3000 adresinde

Derleme Hedefleri

HedefAçıklama
make buildÖn uç + arka uç derlemesi (gömülü)
make build-frontYalnızca ön uç derlemesi
make build-backYalnızca arka uç derlemesi
make build-distÜretim linux/amd64 arşivi oluşturur
make build-siteAstro sitesini derler (SSG)

make build

Tam üretim derlemesi:

  1. apps/web dizininde bun run build çalıştırır — React uygulamasını derler
  2. apps/web/dist/client/*server/frontend/ dizinine kopyalar
  3. Gömülü ön uçla birlikte Go ikili dosyasını derler

Çıktı: server/dist/bedrud

make build-dist

Sıkıştırılmış, üretim hazır bir dağıtım oluşturur:

  1. make build çalıştırır
  2. Hata ayıklama sembolleri çıkarılarak linux/amd64 için çapraz derler
  3. dist/bedrud_linux_amd64.tar.xz oluşturur

Masaüstü Hedefleri

HedefAçıklama
make dev-desktopMasaüstü uygulamasını derler ve çalıştırır (debug)
make build-desktopOptimize edilmiş release ikili dosyasını derler

Yerel Tek İkili Dosya

HedefAçıklama
make local-buildÖn uç + arka ucu tek ikili dosyaya derler
make local-runDerler + yerel olarak çalıştırır (SQLite, gömülü LiveKit)

make local-run

Yerel yapılandırmayla tek ikili dosyayı derler ve başlatır:

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

Hazır olduğunda http://localhost:8090 adresini açın.

API Belgeleri

HedefAçıklama
make swagger-genEk açıklamalardan Swagger belgelerini yeniden oluşturur
make swagger-openSwagger UI’ı tarayıcıda açar
make scalar-openScalar UI’ı tarayıcıda açar

swag CLI gerektirir (go install github.com/swaggo/swag/cmd/swag@latest). swagger-open ve scalar-open için sunucu çalışıyor olmalıdır.

Android Hedefleri

HedefAçıklama
make build-android-debugDebug APK derler
make build-androidRelease APK derler (keystore gerektirir)
make install-androidRelease APK’yı bağlı cihaza kurar
make release-androidDerler + release APK’yı cihaza kurar

APK Çıktı Yolları

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

iOS Hedefleri

HedefAçıklama
make build-iosiOS arşivi derler (Release)
make export-iosArşivden IPA dışa aktarır
make build-ios-simiOS Simülatörü için derler (Debug)

Çıktı Yolları

  • Arşiv: apps/ios/build/Bedrud.xcarchive
  • IPA: apps/ios/build/export/Bedrud.ipa

Dağıtım Hedefi

HedefAçıklama
make deploy ARGS=...Dağıtım CLI aracını çalıştırır

Örnek

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

Bu, tools/cli/bedrud.py konumundaki Python CLI aracını belirtilen argümanlarla çalıştırır.

Test

HedefAçıklama
make test-backArka uç testlerini çalıştırır (go test -v -count=1 ./...)

Temizleme Hedefleri

HedefAçıklama
make cleanDerleme çıktılarını ve derlenmiş ikili dosyaları kaldırır
make full-cleanÇıktılar + tüm kurulmuş bağımlılıkları kaldırır

make clean

Şunları kaldırır:

  • dist/ — dağıtım arşivleri
  • server/dist/ — derlenmiş sunucu ikilisi
  • apps/web/dist/ — React derleme çıktısı
  • server/frontend/ içeriği — gömülü ön uç varlıkları
  • apps/android/app/build/ — Android derleme çıktıları
  • apps/ios/build/ — iOS derleme çıktıları
  • apps/site/dist/ — Astro site derleme çıktısı
  • target/ — Rust/Cargo derleme çıktısı

make full-clean

clean komutunun yaptığı her şey, ayrıca:

  • apps/web/node_modules/
  • apps/site/node_modules/
  • apps/android/.gradle/
  • apps/android/build/
  • Go modül önbelleği (go clean -modcache)

Sonrasında bağımlılıkları yeniden kurmak için make init çalıştırın.