🐳 Docker y servicios en CORDIA
CORDIA utiliza contenedores Docker para ejecutar todos los servicios que componen la plataforma, tanto para desarrollo como producción. Algunos servicios son dinámicos (ejecutan código), y otros son simplemente archivos estáticos servidos mediante un proxy NGINX.
Todos los entornos se levantan mediante:
./run.sh dev --rebuild # Levanta todos los servicios
./run-service.sh dev mkdocs # Levanta solo un servicio específico
Usa siempre estos scripts para mantener consistencia en el entorno.
🧩 Servicios Docker del sistema
| Contenedor | Rol funcional | Observaciones |
|---|---|---|
cordia-apilaravel |
API principal de CORDIA (Laravel + Sail) | Backend que gestiona la lógica y datos |
cordia-mysql |
Base de datos MySQL | Persistencia mediante volumen docker-data/mysql |
cordia-adminer |
Adminer para consulta rápida de la BD | Accesible por subdominio local |
cordia-schemaspy |
Visualización del esquema relacional | Genera HTML en public/schema.cordia/ |
cordia-mkdocs |
Generador de documentación estática (MkDocs) | Genera public/devdocs.cordia/ y public/docs.cordia/ |
cordia-proxy |
NGINX que sirve documentación y recursos | Protege rutas con .htpasswd y gestiona múltiples dominios |
cordia-npm |
Nginx Proxy Manager | Administra subdominios y certificados |
cordia-grafana |
Monitorización del sistema | Paneles accesibles por dominio |
cordia-uptime |
Monitorización del estado de servicios | Con soporte para alertas |
| — | Swagger UI (contenido estático) | Se sirve directamente desde public/swagger.cordia/ |
cordia-vueadmin (en desarrollo) |
Editor para revisores lingüísticos | Path: app/admin-vue/ (servicio Docker comentado en compose) |
🗂️ Carpetas y volúmenes
docker/: configuración específica de cada serviciodocker-data/: almacenamiento persistente (MySQL, Grafana, NPM...)public/: recursos servidos estáticamente por el proxy NGINX
Ejemplos:
public/docs.cordia/→ contenido estático de la documentación generalpublic/schema.cordia/→ salida generada por SchemaSpy
⚙️ Comandos útiles
# Levantar entorno completo
./run.sh dev
# Ejecutar servicio concreto (ej: mkdocs)
./run-service.sh local mkdocs
# Detener contenedores
docker compose down
# Ver estado
docker ps
🔐 Servidor proxy (cordia-proxy)
El contenedor cordia-proxy usa NGINX para servir contenido estático desde rutas como:
| Subdominio | Ruta servida internamente |
|---|---|
schema.cordia.local |
/schemaspy |
docs.cordia.local |
/docs (con acceso restringido) |
devdocs.cordia.local |
/devdocs (con acceso restringido) |
reports.cordia.local |
/reports (con acceso restringido) |
apidocs.cordia.local |
/public-scribe (protegido) |
swagger.cordia.local |
/swagger (protegido) |
El archivo default.conf de NGINX define reglas de seguridad, caché de recursos estáticos y tratamiento de archivos .yaml.
Consulta también
urls.mdpara ver la relación entre servicios, dominios y entornos accesibles.