Garabato

Desarrollo

Arranca el monorepo en local, pasa las comprobaciones y oriéntate en el código.

Garabato es un monorepo de Bun y Turborepo, solo TypeScript. Necesitas Bun 1.4.2, openssl, Docker con Compose 2.22 o superior y un PostgreSQL de desarrollo fuera del proyecto.

Arrancarlo en local

bun install
bun run setup:dev   # escribe el .env de la raíz con secretos reales y el admin inicial

setup:dev imprime las credenciales del administrador que ha generado. Después pon en DATABASE_URL del .env la dirección de tu PostgreSQL de desarrollo. Todo el repo lee ese único .env; .env.example documenta cada variable.

Hay dos formas equivalentes de arrancarlo. Comparten puertos, así que usa una u otra:

bun run dev         # el stack de desarrollo en Docker con recarga en caliente; Ctrl+C para parar
bun run dev:local   # las apps en nativo con Turbo, más `bun run gateway`

En nativo, bun run minio:start arranca un MinIO local para los documentos y bun run loki:start el registro de actividad.

La app está en https://localhost:4321, el gateway de desarrollo (HTTPS y HTTP/2 con una autoridad de certificación local). Enruta exactamente igual que en producción. bun run dev:cert exporta el certificado raíz del gateway para que confíes en él en el navegador una sola vez.

No hay ningún paso manual de base de datos: el backend aplica las migraciones del repo y crea el administrador al arrancar.

Comprobaciones

bun run check-types      # TypeScript y astro check
bun run check            # lint y formato con Biome
bun run test             # tests unitarios (bun test)
bun run tailwind:check   # lint de las clases de Tailwind

Los tests unitarios son herméticos: sin base de datos, red ni servicios en marcha.

Estructura del repositorio

apps/
  frontend/   Interfaz Astro SSR + React
  backend/    API Hono + oRPC y el scheduler de crons
  gateway/    Caddy: el punto de entrada público
  site/       Esta web
packages/
  api/        Contrato y handlers de oRPC, versionados bajo v1
  auth/       Configuración de Better Auth
  cron/       Scheduler y servicio de crons
  db/         Esquema de Drizzle, migraciones y seed
  env/        Variables de entorno validadas
  logger/     Logger pino compartido
  config/     tsconfig compartido
doc/          Documentación (en español), diagramas y capturas
openspec/     Specs de capacidades y propuestas de cambio
scripts/      setup-dev.sh y el instalador bootstrap

Esta web

La web vive en apps/site (Astro, salida estática) y .github/workflows/pages.yml la publica en GitHub Pages en cada push a main que la toque. Las páginas son ficheros Markdown en apps/site/src/content/docs/<idioma>/.

bun run --filter site dev

Contribuir

Las issues y pull requests son bienvenidas en GitHub. Los cambios pasan por OpenSpec y los commits siguen Conventional Commits.