El Makefile raíz es la herramienta central de orquestación de compilación del monorepo de Bedrud. Proporciona comandos para desarrollo, compilación y despliegue en todas las plataformas.
Uso
make <target>
make help # Mostrar todos los targets disponiblesTargets de desarrollo
| Target | Descripción |
|---|---|
make init | Instalar todas las dependencias (LiveKit + config + bun + Go) |
make dev | Ejecutar LiveKit + servidor (hot reload) + web simultáneamente |
make dev-web | Ejecutar solo el servidor de desarrollo del frontend |
make dev-server | Ejecutar servidor backend + LiveKit |
make dev-server-hot | Ejecutar backend con Air hot reload |
make dev-api | Ejecutar solo el backend, sin LiveKit |
make dev-livekit | Ejecutar el servidor local de LiveKit |
make dev-site | Ejecutar el servidor de desarrollo del sitio Astro |
make dev-ios | Abrir el proyecto de iOS en Xcode |
make dev-android | Abrir el proyecto de Android en Android Studio |
make init
Configuración completa de un nuevo entorno de desarrollo:
- Descarga el binario del servidor LiveKit a
~/.local/bin/(si no está en PATH) - Crea
server/config.yamldesde la plantillaconfig.local.yaml(si no existe) - Crea el placeholder de LiveKit embed en
server/internal/livekit/bin/livekit-server - Instala
airpara hot reload de Go (si no está instalado) - Instala dependencias:
apps/web(bun),apps/site(bun),server(go mod)
make dev
Inicia los tres servicios de desarrollo simultáneamente. Presiona Ctrl+C para detener todos:
- LiveKit en
localhost:7880 - Servidor en
localhost:8090 - Web en
localhost:3000
Targets de compilación
| Target | Descripción |
|---|---|
make build | Compilar frontend + backend (embebido) |
make build-front | Compilar solo el frontend |
make build-back | Compilar solo el backend |
make build-dist | Compilar tarball de producción para linux/amd64 |
make build-site | Compilar sitio Astro (SSG) |
make build
Compilación completa de producción:
- Ejecuta
bun run buildenapps/web— compila la aplicación React - Copia
apps/web/dist/client/*→server/frontend/ - Compila el binario de Go con el frontend embebido
Resultado: server/dist/bedrud
make build-dist
Crea una distribución comprimida lista para producción:
- Ejecuta
make build - Compila cruzadamente para
linux/amd64con símbolos de depuración eliminados - Crea
dist/bedrud_linux_amd64.tar.xz
Targets de escritorio
| Target | Descripción |
|---|---|
make dev-desktop | Compilar y ejecutar la aplicación de escritorio (debug) |
make build-desktop | Compilar binario de release optimizado |
Binario local único
| Target | Descripción |
|---|---|
make local-build | Compilar frontend + backend en un solo binario |
make local-run | Compilar + ejecutar localmente (SQLite, LiveKit embebido) |
make local-run
Compila e inicia el binario único con configuración local:
CONFIG_PATH=server/config.local.yaml server/dist/bedrud runAbre http://localhost:8090 cuando esté listo.
Documentación de API
| Target | Descripción |
|---|---|
make swagger-gen | Regenerar documentación Swagger desde anotaciones |
make swagger-open | Abrir Swagger UI en el navegador |
make scalar-open | Abrir Scalar UI en el navegador |
Requiere el CLI swag (go install github.com/swaggo/swag/cmd/swag@latest). El servidor debe estar en ejecución para swagger-open y scalar-open.
Targets de Android
| Target | Descripción |
|---|---|
make build-android-debug | Compilar APK de depuración |
make build-android | Compilar APK de producción (requiere keystore) |
make install-android | Instalar APK de producción en un dispositivo conectado |
make release-android | Compilar + instalar APK de producción |
Rutas de salida de APK
- Depuración:
apps/android/app/build/outputs/apk/debug/app-debug.apk - Producción:
apps/android/app/build/outputs/apk/release/app-release.apk
Targets de iOS
| Target | Descripción |
|---|---|
make build-ios | Compilar archivo de iOS (Release) |
make export-ios | Exportar IPA desde el archivo |
make build-ios-sim | Compilar para simulador de iOS (Debug) |
Rutas de salida
- Archivo:
apps/ios/build/Bedrud.xcarchive - IPA:
apps/ios/build/export/Bedrud.ipa
Target de despliegue
| Target | Descripción |
|---|---|
make deploy ARGS=... | Ejecutar la herramienta CLI de despliegue |
Ejemplo
make deploy ARGS="--auto-config --ip 1.2.3.4 --user root --domain meet.example.com"Esto ejecuta la CLI de Python en tools/cli/bedrud.py con los argumentos proporcionados.
Pruebas
| Target | Descripción |
|---|---|
make test-back | Ejecutar tests del backend (go test -v -count=1 ./...) |
Targets de limpieza
| Target | Descripción |
|---|---|
make clean | Eliminar artefactos de compilación y binarios compilados |
make full-clean | Eliminar artefactos + todas las dependencias instaladas |
make clean
Elimina:
dist/— tarballs de distribuciónserver/dist/— binario compilado del servidorapps/web/dist/— resultado de compilación de React- Contenido de
server/frontend/— assets del frontend embebido apps/android/app/build/— resultados de compilación de Androidapps/ios/build/— resultados de compilación de iOSapps/site/dist/— resultado de compilación del sitio Astrotarget/— resultado de compilación de Rust/Cargo
make full-clean
Todo lo que hace clean, además de:
apps/web/node_modules/apps/site/node_modules/apps/android/.gradle/apps/android/build/- Caché de módulos de Go (
go clean -modcache)
Ejecuta make init después para reinstalar las dependencias.