Bedrud Documentación

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 disponibles

Targets de desarrollo

TargetDescripción
make initInstalar todas las dependencias (LiveKit + config + bun + Go)
make devEjecutar LiveKit + servidor (hot reload) + web simultáneamente
make dev-webEjecutar solo el servidor de desarrollo del frontend
make dev-serverEjecutar servidor backend + LiveKit
make dev-server-hotEjecutar backend con Air hot reload
make dev-apiEjecutar solo el backend, sin LiveKit
make dev-livekitEjecutar el servidor local de LiveKit
make dev-siteEjecutar el servidor de desarrollo del sitio Astro
make dev-iosAbrir el proyecto de iOS en Xcode
make dev-androidAbrir el proyecto de Android en Android Studio

make init

Configuración completa de un nuevo entorno de desarrollo:

  1. Descarga el binario del servidor LiveKit a ~/.local/bin/ (si no está en PATH)
  2. Crea server/config.yaml desde la plantilla config.local.yaml (si no existe)
  3. Crea el placeholder de LiveKit embed en server/internal/livekit/bin/livekit-server
  4. Instala air para hot reload de Go (si no está instalado)
  5. 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

TargetDescripción
make buildCompilar frontend + backend (embebido)
make build-frontCompilar solo el frontend
make build-backCompilar solo el backend
make build-distCompilar tarball de producción para linux/amd64
make build-siteCompilar sitio Astro (SSG)

make build

Compilación completa de producción:

  1. Ejecuta bun run build en apps/web — compila la aplicación React
  2. Copia apps/web/dist/client/*server/frontend/
  3. 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:

  1. Ejecuta make build
  2. Compila cruzadamente para linux/amd64 con símbolos de depuración eliminados
  3. Crea dist/bedrud_linux_amd64.tar.xz

Targets de escritorio

TargetDescripción
make dev-desktopCompilar y ejecutar la aplicación de escritorio (debug)
make build-desktopCompilar binario de release optimizado

Binario local único

TargetDescripción
make local-buildCompilar frontend + backend en un solo binario
make local-runCompilar + 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 run

Abre http://localhost:8090 cuando esté listo.

Documentación de API

TargetDescripción
make swagger-genRegenerar documentación Swagger desde anotaciones
make swagger-openAbrir Swagger UI en el navegador
make scalar-openAbrir 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

TargetDescripción
make build-android-debugCompilar APK de depuración
make build-androidCompilar APK de producción (requiere keystore)
make install-androidInstalar APK de producción en un dispositivo conectado
make release-androidCompilar + 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

TargetDescripción
make build-iosCompilar archivo de iOS (Release)
make export-iosExportar IPA desde el archivo
make build-ios-simCompilar para simulador de iOS (Debug)

Rutas de salida

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

Target de despliegue

TargetDescripció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

TargetDescripción
make test-backEjecutar tests del backend (go test -v -count=1 ./...)

Targets de limpieza

TargetDescripción
make cleanEliminar artefactos de compilación y binarios compilados
make full-cleanEliminar artefactos + todas las dependencias instaladas

make clean

Elimina:

  • dist/ — tarballs de distribución
  • server/dist/ — binario compilado del servidor
  • apps/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 Android
  • apps/ios/build/ — resultados de compilación de iOS
  • apps/site/dist/ — resultado de compilación del sitio Astro
  • target/ — 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.