Skip to main content

Cómo desplegar este mismo sitio de documentación

Este sitio (el que estás leyendo ahora mismo) es un Docusaurus desplegado en Firebase Hosting, sin pipeline de CI/CD automático — a diferencia de ABA-backend y ABA-frontend (ver Pipelines CI/CD), el deploy de esta documentación es un comando manual después de cada git push.

1. Requisitos previos

  • Node.js v18 o superior
  • npm
  • Cuenta de Firebase / Google con acceso al proyecto aba-problem
  • Firebase CLI instalado globalmente:
npm install -g firebase-tools

2. Cómo se creó el proyecto (referencia, no hace falta repetirlo)

npx create-docusaurus@latest docs classic
cd docs

Esto generó la estructura base: docs/, blog/, src/, static/, docusaurus.config.js, sidebars.js.

3. Probar en local

npm run start

Levanta el servidor de desarrollo en http://localhost:3000.

4. Compilar (build)

Siempre hay que compilar antes de desplegar — Firebase sirve la carpeta build/, no el código fuente:

npm run build
Errores comunes de build
  • ParseError: Identifier directly after number → casi siempre es una ruta de Windows (C:\Users\...) pegada sin comillas dentro de docusaurus.config.js. Todas las rutas del config van entre comillas y son relativas (ej. "img/logo.png"), nunca rutas absolutas del sistema.
  • ReferenceError: FeatureList is not defined → pasa al editar src/components/HomepageFeatures/index.js y borrar el arreglo FeatureList sin quitar también el .map() que lo usa. Si se elimina esa sección, hay que quitar tanto la definición como su uso.

5. Desplegar a Firebase Hosting

5.1 Iniciar sesión (una sola vez por máquina)

firebase login

5.2 Desplegar

npm run build
firebase deploy

Si todo sale bien:

✔ Deploy complete!
Hosting URL: https://aba-problem.web.app
Si ves la pantalla de bienvenida de Firebase por defecto

Significa que "public" en firebase.json no apunta a build, o que no corriste npm run build antes de firebase deploy. En este repo firebase.json ya está configurado correctamente ("public": "build") — alcanza con no saltarse el paso 4.

6. Dominio personalizado

El paso de conectar un dominio propio (en vez del .web.app que da Firebase por defecto) todavía no se hizo para este sitio — ver el TODO en docusaurus.config.js sobre el campo url. Cuando se decida el subdominio final (siguiendo la convención de Subdominios, algo como docs.aba.andrescortes.dev), los pasos son:

  1. Firebase Console → HostingAdd custom domain, escribir el subdominio elegido.
  2. Agregar el registro CNAME que Firebase indique en el proveedor de DNS real del dominio (confirmar primero cuál es — no necesariamente el mismo panel donde se gestionan otros registros).
  3. Si el DNS pasa por Cloudflare con el proxy activado (nube naranja), hay que ponerlo en modo "DNS only" (nube gris) al menos durante la validación inicial — si no, Cloudflare intercepta la validación SSL y falla.
  4. Una vez el DNS resuelve, Firebase completa la validación solo y el estado pasa a "Connected" con SSL activo (puede tardar minutos a horas).
  5. Actualizar url en docusaurus.config.js al dominio final y actualizar organizationName/ editUrl si corresponde, luego volver a desplegar.

7. Checklist de cada despliegue

# 1. Compilar
npm run build

# 2. Si compiló bien, desplegar
firebase deploy

# 3. Verificar en el navegador la URL de Hosting que imprime el comando anterior

Si npm run build falla: leé el error completo (indica archivo y línea), revisá que no haya rutas de Windows sueltas en docusaurus.config.js, y si el problema persiste probá limpiar caché (npm run clear y volver a compilar).