Bedrud Documentation

Le Makefile à la racine est l’outil central d’orchestration de build pour le monorepo Bedrud. Il fournit des commandes pour le développement, le build et le déploiement sur toutes les plateformes.

Utilisation

make <cible>
make help       # Afficher toutes les cibles disponibles

Cibles de développement

CibleDescription
make initInstaller toutes les dépendances (LiveKit + config + bun + Go)
make devExécuter LiveKit + serveur (hot reload) + web simultanément
make dev-webExécuter uniquement le serveur de développement frontend
make dev-serverExécuter le serveur backend + LiveKit
make dev-server-hotExécuter le backend avec Air (hot reload)
make dev-apiExécuter uniquement le backend, sans LiveKit
make dev-livekitExécuter le serveur LiveKit local
make dev-siteExécuter le serveur de développement du site Astro
make dev-iosOuvrir le projet iOS dans Xcode
make dev-androidOuvrir le projet Android dans Android Studio

make init

Configuration complète d’un nouvel environnement de développement :

  1. Télécharge le binaire du serveur LiveKit dans ~/.local/bin/ (si absent du PATH)
  2. Crée server/config.yaml à partir du modèle config.local.yaml (si absent)
  3. Crée le placeholder d’embarquement LiveKit dans server/internal/livekit/bin/livekit-server
  4. Installe air pour le hot reload Go (si absent)
  5. Installe les dépendances : apps/web (bun), apps/site (bun), server (go mod)

make dev

Démarre les trois services de développement simultanément. Appuyez sur Ctrl+C pour tout arrêter :

  • LiveKit à localhost:7880
  • Serveur à localhost:8090
  • Web à localhost:3000

Cibles de build

CibleDescription
make buildBuild frontend + backend (intégré)
make build-frontBuild uniquement le frontend
make build-backBuild uniquement le backend
make build-distBuild tarball production linux/amd64
make build-siteBuild du site Astro (SSG)

make build

Build de production complet :

  1. Exécute bun run build dans apps/web — build l’application React
  2. Copie apps/web/dist/client/*server/frontend/
  3. Build le binaire Go avec le frontend intégré

Sortie : server/dist/bedrud

make build-dist

Crée une distribution compressée prête pour la production :

  1. Exécute make build
  2. Compilation croisée pour linux/amd64 avec symboles de débogage supprimés
  3. Crée dist/bedrud_linux_amd64.tar.xz

Cibles Desktop

CibleDescription
make dev-desktopBuild et exécuter l’application desktop (debug)
make build-desktopBuild le binaire de release optimisé

Binaire local unique

CibleDescription
make local-buildBuild frontend + backend en un seul binaire
make local-runBuild + exécution locale (SQLite, LiveKit intégré)

make local-run

Build et démarre le binaire unique avec la config locale :

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

Ouvrez http://localhost:8090 une fois prêt.

Documentation API

CibleDescription
make swagger-genRégénérer la documentation Swagger depuis les annotations
make swagger-openOuvrir Swagger UI dans le navigateur
make scalar-openOuvrir Scalar UI dans le navigateur

Requiert le CLI swag (go install github.com/swaggo/swag/cmd/swag@latest). Le serveur doit être en cours d’exécution pour swagger-open et scalar-open.

Cibles Android

CibleDescription
make build-android-debugBuild APK de débogage
make build-androidBuild APK de release (nécessite keystore)
make install-androidInstaller APK de release sur l’appareil connecté
make release-androidBuild + installation APK de release

Chemins de sortie APK

  • Débogage : apps/android/app/build/outputs/apk/debug/app-debug.apk
  • Release : apps/android/app/build/outputs/apk/release/app-release.apk

Cibles iOS

CibleDescription
make build-iosBuild archive iOS (Release)
make export-iosExporter IPA depuis l’archive
make build-ios-simBuild pour simulateur iOS (Debug)

Chemins de sortie

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

Cible de déploiement

CibleDescription
make deploy ARGS=...Exécuter l’outil CLI de déploiement

Exemple

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

Cela exécute le CLI Python à tools/cli/bedrud.py avec les arguments fournis.

Tests

CibleDescription
make test-backExécuter les tests backend (go test -v -count=1 ./...)

Cibles de nettoyage

CibleDescription
make cleanSupprimer les artefacts de build et les binaires compilés
make full-cleanSupprimer les artefacts + toutes les dépendances installées

make clean

Supprime :

  • dist/ — tarballs de distribution
  • server/dist/ — binaire serveur compilé
  • apps/web/dist/ — sortie de build React
  • contenu server/frontend/ — assets frontend intégrés
  • apps/android/app/build/ — sorties de build Android
  • apps/ios/build/ — sorties de build iOS
  • apps/site/dist/ — sortie de build du site Astro
  • target/ — sortie de build Rust/Cargo

make full-clean

Tout ce que fait clean, plus :

  • apps/web/node_modules/
  • apps/site/node_modules/
  • apps/android/.gradle/
  • apps/android/build/
  • Cache de modules Go (go clean -modcache)

Exécutez make init ensuite pour réinstaller les dépendances.