🚀 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
- Accede al cPanel de
alladixital.org. - Abre el terminal web desde el panel.
- Navega al directorio del proyecto:
cd ~/cordia.alladixital.org
- 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:
- Desarrollo en
feature/*odev - Merge a
main(estable y validado) - Merge de
mainaprodpara 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.shydeploy.shpara entender cómo se integran los despliegues con los servicios.