Bedrud Dokumentation

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 targets

Entwicklungs-Targets

TargetBeschreibung
make initAlle Abhängigkeiten installieren (LiveKit + Config + bun + Go)
make devLiveKit + Server (Hot Reload) + Web gleichzeitig ausführen
make dev-webNur den Frontend-Dev-Server ausführen
make dev-serverBackend-Server + LiveKit ausführen
make dev-server-hotBackend mit Air Hot Reload ausführen
make dev-apiNur Backend ausführen, kein LiveKit
make dev-livekitLokalen LiveKit-Server ausführen
make dev-siteAstro-Site-Dev-Server ausführen
make dev-iosiOS-Projekt in Xcode öffnen
make dev-androidAndroid-Projekt in Android Studio öffnen

make init

Vollständige Einrichtung einer neuen Entwicklungsumgebung:

  1. Lädt den LiveKit-Server-Binary nach ~/.local/bin/ herunter (falls nicht im PATH)
  2. Erstellt server/config.yaml aus der Vorlage config.local.yaml (falls fehlend)
  3. Erstellt LiveKit-Embed-Placeholder unter server/internal/livekit/bin/livekit-server
  4. Installiert air für Go Hot Reload (falls nicht vorhanden)
  5. 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

TargetBeschreibung
make buildFrontend + Backend erstellen (eingebettet)
make build-frontNur Frontend erstellen
make build-backNur Backend erstellen
make build-distProduktions-Tarball für linux/amd64 erstellen
make build-siteAstro-Site erstellen (SSG)

make build

Vollständiger Produktions-Build:

  1. Führt bun run build in apps/web aus — erstellt die React-App
  2. Kopiert apps/web/dist/client/*server/frontend/
  3. Erstellt das Go-Binary mit dem eingebetteten Frontend

Ausgabe: server/dist/bedrud

make build-dist

Erstellt ein komprimiertes, produktionsbereites Distributionspaket:

  1. Führt make build aus
  2. Cross-Kompilierung für linux/amd64 mit entfernten Debug-Symbolen
  3. Erstellt dist/bedrud_linux_amd64.tar.xz

Desktop-Targets

TargetBeschreibung
make dev-desktopDesktop-App erstellen und ausführen (Debug)
make build-desktopOptimiertes Release-Binary erstellen

Lokales Einzel-Binary

TargetBeschreibung
make local-buildFrontend + Backend in ein Binary erstellen
make local-runErstellen + 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 run

http://localhost:8090 öffnen, wenn bereit.

API-Dokumentation

TargetBeschreibung
make swagger-genSwagger-Docs aus Annotationen neu generieren
make swagger-openSwagger UI im Browser öffnen
make scalar-openScalar 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

TargetBeschreibung
make build-android-debugDebug-APK erstellen
make build-androidRelease-APK erstellen (erfordert Keystore)
make install-androidRelease-APK auf verbundenem Gerät installieren
make release-androidBuild + 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

TargetBeschreibung
make build-iosiOS-Archiv erstellen (Release)
make export-iosIPA aus Archiv exportieren
make build-ios-simFür iOS-Simulator erstellen (Debug)

Ausgabepfade

  • Archiv: apps/ios/build/Bedrud.xcarchive
  • IPA: apps/ios/build/export/Bedrud.ipa

Deploy-Target

TargetBeschreibung
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

TargetBeschreibung
make test-backBackend-Tests ausführen (go test -v -count=1 ./...)

Bereinigungs-Targets

TargetBeschreibung
make cleanBuild-Artefakte und kompilierte Binaries entfernen
make full-cleanArtefakte + alle installierten Abhängigkeiten entfernen

make clean

Entfernt:

  • dist/ — Distributions-Tarballs
  • server/dist/ — Kompiliertes Server-Binary
  • apps/web/dist/ — React-Build-Ausgabe
  • server/frontend/-Inhalte — Eingebettete Frontend-Assets
  • apps/android/app/build/ — Android-Build-Ausgaben
  • apps/ios/build/ — iOS-Build-Ausgaben
  • apps/site/dist/ — Astro-Site-Build-Ausgabe
  • target/ — 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.