Das Root-Makefile ist das zentrale Build-Orchestrierungstool für das Bedrud-Monorepo. Es bietet Befehle für Entwicklung, Building und Bereitstellung auf allen Plattformen.
Verwendung
make <target>
make help # Show all available targetsEntwicklungs-Targets
| Target | Beschreibung |
|---|---|
make init | Alle Abhängigkeiten installieren (LiveKit + Config + bun + Go) |
make dev | LiveKit + Server (Hot Reload) + Web gleichzeitig ausführen |
make dev-web | Nur den Frontend-Dev-Server ausführen |
make dev-server | Backend-Server + LiveKit ausführen |
make dev-server-hot | Backend mit Air Hot Reload ausführen |
make dev-api | Nur Backend ausführen, kein LiveKit |
make dev-livekit | Lokalen LiveKit-Server ausführen |
make dev-site | Astro-Site-Dev-Server ausführen |
make dev-ios | iOS-Projekt in Xcode öffnen |
make dev-android | Android-Projekt in Android Studio öffnen |
make init
Vollständige Einrichtung einer neuen Entwicklungsumgebung:
- Lädt den LiveKit-Server-Binary nach
~/.local/bin/herunter (falls nicht im PATH) - Erstellt
server/config.yamlaus der Vorlageconfig.local.yaml(falls fehlend) - Erstellt LiveKit-Embed-Placeholder unter
server/internal/livekit/bin/livekit-server - Installiert
airfür Go Hot Reload (falls nicht vorhanden) - Installiert Abhängigkeiten:
apps/web(bun),apps/site(bun),server(go mod)
make dev
Startet alle drei Entwicklungsdienste gleichzeitig. Drücken Sie Ctrl+C, um alle zu stoppen:
- LiveKit unter
localhost:7880 - Server unter
localhost:8090 - Web unter
localhost:3000
Build-Targets
| Target | Beschreibung |
|---|---|
make build | Frontend + Backend erstellen (eingebettet) |
make build-front | Nur Frontend erstellen |
make build-back | Nur Backend erstellen |
make build-dist | Produktions-Tarball für linux/amd64 erstellen |
make build-site | Astro-Site erstellen (SSG) |
make build
Vollständiger Produktions-Build:
- Führt
bun run buildinapps/webaus — erstellt die React-App - Kopiert
apps/web/dist/client/*→server/frontend/ - Erstellt das Go-Binary mit dem eingebetteten Frontend
Ausgabe: server/dist/bedrud
make build-dist
Erstellt ein komprimiertes, produktionsbereites Distributionspaket:
- Führt
make buildaus - Cross-Kompilierung für
linux/amd64mit entfernten Debug-Symbolen - Erstellt
dist/bedrud_linux_amd64.tar.xz
Desktop-Targets
| Target | Beschreibung |
|---|---|
make dev-desktop | Desktop-App erstellen und ausführen (Debug) |
make build-desktop | Optimiertes Release-Binary erstellen |
Lokales Einzel-Binary
| Target | Beschreibung |
|---|---|
make local-build | Frontend + Backend in ein Binary erstellen |
make local-run | Erstellen + lokal ausführen (SQLite, eingebettetes LiveKit) |
make local-run
Erstellt und startet das Einzel-Binary mit lokaler Konfiguration:
CONFIG_PATH=server/config.local.yaml server/dist/bedrud runhttp://localhost:8090 öffnen, wenn bereit.
API-Dokumentation
| Target | Beschreibung |
|---|---|
make swagger-gen | Swagger-Docs aus Annotationen neu generieren |
make swagger-open | Swagger UI im Browser öffnen |
make scalar-open | Scalar UI im Browser öffnen |
Erfordert swag CLI (go install github.com/swaggo/swag/cmd/swag@latest). Server muss für swagger-open und scalar-open laufen.
Android-Targets
| Target | Beschreibung |
|---|---|
make build-android-debug | Debug-APK erstellen |
make build-android | Release-APK erstellen (erfordert Keystore) |
make install-android | Release-APK auf verbundenem Gerät installieren |
make release-android | Build + Release-APK installieren |
APK-Ausgabepfade
- Debug:
apps/android/app/build/outputs/apk/debug/app-debug.apk - Release:
apps/android/app/build/outputs/apk/release/app-release.apk
iOS-Targets
| Target | Beschreibung |
|---|---|
make build-ios | iOS-Archiv erstellen (Release) |
make export-ios | IPA aus Archiv exportieren |
make build-ios-sim | Für iOS-Simulator erstellen (Debug) |
Ausgabepfade
- Archiv:
apps/ios/build/Bedrud.xcarchive - IPA:
apps/ios/build/export/Bedrud.ipa
Deploy-Target
| Target | Beschreibung |
|---|---|
make deploy ARGS=... | Das Bereitstellungs-CLI-Tool ausführen |
Beispiel
make deploy ARGS="--auto-config --ip 1.2.3.4 --user root --domain meet.example.com"Dies führt das Python-CLI unter tools/cli/bedrud.py mit den angegebenen Argumenten aus.
Tests
| Target | Beschreibung |
|---|---|
make test-back | Backend-Tests ausführen (go test -v -count=1 ./...) |
Bereinigungs-Targets
| Target | Beschreibung |
|---|---|
make clean | Build-Artefakte und kompilierte Binaries entfernen |
make full-clean | Artefakte + alle installierten Abhängigkeiten entfernen |
make clean
Entfernt:
dist/— Distributions-Tarballsserver/dist/— Kompiliertes Server-Binaryapps/web/dist/— React-Build-Ausgabeserver/frontend/-Inhalte — Eingebettete Frontend-Assetsapps/android/app/build/— Android-Build-Ausgabenapps/ios/build/— iOS-Build-Ausgabenapps/site/dist/— Astro-Site-Build-Ausgabetarget/— Rust/Cargo-Build-Ausgabe
make full-clean
Alles was clean tut, plus:
apps/web/node_modules/apps/site/node_modules/apps/android/.gradle/apps/android/build/- Go-Modul-Cache (
go clean -modcache)
Danach make init ausführen, um die Abhängigkeiten erneut zu installieren.