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 disponiblesCibles de développement
| Cible | Description |
|---|---|
make init | Installer toutes les dépendances (LiveKit + config + bun + Go) |
make dev | Exécuter LiveKit + serveur (hot reload) + web simultanément |
make dev-web | Exécuter uniquement le serveur de développement frontend |
make dev-server | Exécuter le serveur backend + LiveKit |
make dev-server-hot | Exécuter le backend avec Air (hot reload) |
make dev-api | Exécuter uniquement le backend, sans LiveKit |
make dev-livekit | Exécuter le serveur LiveKit local |
make dev-site | Exécuter le serveur de développement du site Astro |
make dev-ios | Ouvrir le projet iOS dans Xcode |
make dev-android | Ouvrir le projet Android dans Android Studio |
make init
Configuration complète d’un nouvel environnement de développement :
- Télécharge le binaire du serveur LiveKit dans
~/.local/bin/(si absent du PATH) - Crée
server/config.yamlà partir du modèleconfig.local.yaml(si absent) - Crée le placeholder d’embarquement LiveKit dans
server/internal/livekit/bin/livekit-server - Installe
airpour le hot reload Go (si absent) - 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
| Cible | Description |
|---|---|
make build | Build frontend + backend (intégré) |
make build-front | Build uniquement le frontend |
make build-back | Build uniquement le backend |
make build-dist | Build tarball production linux/amd64 |
make build-site | Build du site Astro (SSG) |
make build
Build de production complet :
- Exécute
bun run builddansapps/web— build l’application React - Copie
apps/web/dist/client/*→server/frontend/ - 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 :
- Exécute
make build - Compilation croisée pour
linux/amd64avec symboles de débogage supprimés - Crée
dist/bedrud_linux_amd64.tar.xz
Cibles Desktop
| Cible | Description |
|---|---|
make dev-desktop | Build et exécuter l’application desktop (debug) |
make build-desktop | Build le binaire de release optimisé |
Binaire local unique
| Cible | Description |
|---|---|
make local-build | Build frontend + backend en un seul binaire |
make local-run | Build + 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 runOuvrez http://localhost:8090 une fois prêt.
Documentation API
| Cible | Description |
|---|---|
make swagger-gen | Régénérer la documentation Swagger depuis les annotations |
make swagger-open | Ouvrir Swagger UI dans le navigateur |
make scalar-open | Ouvrir 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
| Cible | Description |
|---|---|
make build-android-debug | Build APK de débogage |
make build-android | Build APK de release (nécessite keystore) |
make install-android | Installer APK de release sur l’appareil connecté |
make release-android | Build + 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
| Cible | Description |
|---|---|
make build-ios | Build archive iOS (Release) |
make export-ios | Exporter IPA depuis l’archive |
make build-ios-sim | Build pour simulateur iOS (Debug) |
Chemins de sortie
- Archive :
apps/ios/build/Bedrud.xcarchive - IPA :
apps/ios/build/export/Bedrud.ipa
Cible de déploiement
| Cible | Description |
|---|---|
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
| Cible | Description |
|---|---|
make test-back | Exécuter les tests backend (go test -v -count=1 ./...) |
Cibles de nettoyage
| Cible | Description |
|---|---|
make clean | Supprimer les artefacts de build et les binaires compilés |
make full-clean | Supprimer les artefacts + toutes les dépendances installées |
make clean
Supprime :
dist/— tarballs de distributionserver/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 Androidapps/ios/build/— sorties de build iOSapps/site/dist/— sortie de build du site Astrotarget/— 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.