Saltar a contenido

🐳 Docker y servicios en CORDIA

Progreso

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 servicio
  • docker-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 general
  • public/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.md para ver la relación entre servicios, dominios y entornos accesibles.