Saltar a contenido

🚀 Despliegue en entornos test / pre / prod

CORDIA se puede desplegar en diferentes entornos según el propósito: pruebas internas, validación funcional o publicación oficial. El proceso es siempre controlado y automatizado en la medida de lo posible.


🧪 Test

  • Se utiliza para pruebas automáticas, validaciones de entorno y debugging.
  • Suele recrearse temporalmente y no guarda datos persistentes.
  • Ideal para ejecutar tests, revisar logs o probar scripts internos.

Puedes desplegar este entorno con:

./run.sh test --rebuild

🔎 Preproducción

  • Réplica estable del entorno de producción.
  • Se utiliza para validación lingüística y pruebas finales.
  • Usa dominios con subprefijo pre. y puede estar protegido por VPN o contraseñas.
./run.sh pre --rebuild

🚀 Estado automatización deploy para CORDIA

🛠️ Tareas necesarias tras clonar el repositorio

  • Configurar NPM: copiar datos en docker-data/npm/nginx/proxy_host (automatizar)
  • Configurar certificados SSL (HTTPS) (automatizar si se puede)
  • Añadir monitores en Uptime Kuma (automatizar usando un /docker/uptime/provisioning/monitor.pre.json para insertar en /docker-data/uptime-kuma/kuma.db)
  • docker exec -t cordia-apilaravel composer install (automatizar)
  • ./run-service.sh pre apilaravel --rebuild ( para que arranque el servidor con el composer install instalado) ---> sustituir por composer install en start-container:24
  • docker exec -t cordia-apilaravel php artisan migrate:fresh --seed o ./scripts/run-data-imports.sh (automatizar)
  • en npm en subdominio panel , a causa del https: proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port 443;

🌐 Servicios y estado actual

Servicio URL Estado
🧭 Panel de administración (Vue) admin.cordia.marcostorrent.com 🟡 En construcción
🗄️ Adminer adminer.cordia.marcostorrent.com 🟢 OK (falta poner usuario/pass)
🔧 API Laravel api.cordia.marcostorrent.com 🟢 OK (Falta automatizar)
📘 Documentación API (Scribe) apidocs.cordia.marcostorrent.com 🟢 OK
📚 DevDocs devdocs.cordia.marcostorrent.com 🟢 OK
📖 Documentación pública docs.cordia.marcostorrent.com 🟢 OK
📊 Grafana grafana.cordia.marcostorrent.com 🟢 OK
🌐 Nginx Proxy Manager (NPM) npm.cordia.marcostorrent.com 🟢 OK tras configuración
🧾 Reportes de importación reports.cordia.marcostorrent.com 🟢 OK
🧬 SchemaSpy schema.cordia.marcostorrent.com 🟢 OK
📈 Status (Uptime Kuma) status.cordia.marcostorrent.com 🟢 OK tras configuración
🔍 Swagger (API Docs) swagger.cordia.marcostorrent.com 🟢 OK

🚀 Producción

  • Entorno real y accesible (controlado) por usuarios autorizados.
  • Funciona sobre infraestructura estable y con copias de seguridad activas.
  • El acceso está protegido con HTTPS, autenticación JWT y certificados.

💻 Pasos para desplegar en producción

  1. Accede al cPanel de alladixital.org.
  2. Abre el terminal web desde el panel.
  3. Navega al directorio del proyecto:
cd ~/cordia.alladixital.org
  1. Ejecuta el script de despliegue:
./deploy-prod.sh

✅ Esto actualizará la rama prod desde GitHub y aplicará los cambios al entorno de producción.

Asegúrate de tener configurada la clave SSH pull_ed25519.


🧭 Flujo de despliegue

El ciclo de publicación se organiza en este orden:

  1. Desarrollo en feature/* o dev
  2. Merge a main (estable y validado)
  3. Merge de main a prod para activar despliegue en producción

🔐 Solo se permite despliegue a producción desde la rama prod.


📄 Estructura del repositorio en servidor

cordia.alladixital.org/
├── .env
├── docker-compose.prod.yml
├── public/ (documentación y estáticos)
├── deploy-prod.sh
└── otros archivos del sistema

También puede existir otro clon para entornos como test o pre gestionado mediante deploy.sh:

./deploy.sh pre

Este clona (si no existe) o actualiza la rama main y lanza ./run.sh pre --rebuild.


📌 Notas adicionales

  • Los entornos utilizan archivos .env.<entorno> específicos para cada configuración.
  • El despliegue se basa en el stack Docker definido por los docker-compose.*.yml.
  • Para ejecutar solo documentación o servicios parciales, usar:
./run-service.sh mkdocs prod --rebuild

Revisa también los scripts run.sh, run-service.sh, generate-docs.sh y deploy.sh para entender cómo se integran los despliegues con los servicios.