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
ParseError: Identifier directly after number→ casi siempre es una ruta de Windows (C:\Users\...) pegada sin comillas dentro dedocusaurus.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 editarsrc/components/HomepageFeatures/index.jsy borrar el arregloFeatureListsin 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
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:
- Firebase Console → Hosting → Add custom domain, escribir el subdominio elegido.
- Agregar el registro
CNAMEque 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). - 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.
- 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).
- Actualizar
urlendocusaurus.config.jsal dominio final y actualizarorganizationName/editUrlsi 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).