Despliegue ordenado de microservicios PHP y Angular sobre Apache
En mi artículo anterior expliqué cómo estructurar un servidor Apache para servir distintos proyectos web mediante subdominios locales, combinando una configuración de DNS flexible con VirtualHosts. Ese entorno se ha convertido en la base sobre la que he construido una herramienta que facilita la gestión y despliegue de proyectos: swarm-dashboard.
¿Qué es swarm-dashboard?
swarm-dashboard es una pequeña aplicación que permite organizar y desplegar múltiples proyectos basados en PHP y Angular directamente desde repositorios Git. Está diseñado para entornos de desarrollo y también para despliegues de producción ligera, donde no se justifica la complejidad de un sistema de orquestación, pero se quiere mantener orden, trazabilidad y acceso rápido a herramientas complementarias.
El panel detecta automáticamente los proyectos presentes en el servidor y ofrece una interfaz para:
- Actualizar código desde el repositorio remoto.
- Definir archivos de configuración o secretos.
- Asociar credenciales de base de datos.
- Aplicaciones PHP basadas en composer. Tras hacer un clone del proyecto en el repositorio se hará un "composer install". El directorio "public" quedará automáticamente accesible en la dns de host.
- Aplicaciones Angular compiladas con "ng", y cuyo codigo compilado será movido al directorio "public" para hacerlas acesibles en la dns del host.
- Hacer pruebas de conexión directamente desde la interfaz.
- Usar herramientas integradas como visores de base de datos.
- Las credenciales se puede usar como "variables" en los configMaps.
- Visor de logs: acceso directo a los ficheros de log del proyecto, con soporte para tail y búsqueda.
- Explorador de trazas: para visualizar errores o información estructurada generada por el sistema.
Características principales
🚀 Despliegue desde Git
Cada proyecto se gestiona como un clon de un repositorio Git. Desde el panel es posible actualizarlo con un clic, y se pueden organizar múltiples proyectos con nombres personalizados y visibilidad directa a través del DNS local (proyecto.localhost, api-cliente.localhost, etc.).
⚙️ Soporte para PHP y Angular
Actualmente la herramienta está optimizada para dos tipos de proyectos:📁 Config Maps: configuración externa inyectable
Una de las funcionalidades más potentes de swarm-dashboard es el sistema de Config Maps. A través de un formulario por proyecto, se puede definir un JSON que describe ficheros adicionales que deben generarse o sobrescribirse durante el despliegue.
Esto permite mantener separados del repositorio archivos como .env.local, config/database.php o cualquier otro fichero sensible o dependiente del entorno.
Durante el despliegue, swarm-dashboard escribirá esos archivos en las rutas indicadas, garantizando que cada proyecto tiene su configuración adecuada sin necesidad de versionar información sensible.
🔐 Asociación de credenciales de base de datos
Además del Config Map, cada proyecto puede tener asociadas unas credenciales de base de datos (usuario, contraseña, host, puerto, nombre de la base). Estas credenciales se introducen mediante un formulario seguro en el panel, y se usan para:
Las bases de datos se pueden configurar de forma independiente, y reutilizarse en los diferentes proyectos.
🛠️ Herramientas auxiliares
swarm-dashboard incorpora utilidades orientadas al día a día del desarrollo:
Conclusión
swarm-dashboard es una herramienta pensada para quienes trabajan con varios proyectos PHP y Angular en un mismo servidor, y necesitan un modo sencillo de mantenerlos organizados, desplegados y operativos. Con soporte para configuración externa, credenciales seguras y herramientas de gestión integradas, es una alternativa ligera y eficaz a soluciones más complejas.
📎 Puedes probarla o contribuir desde el repositorio:
Comentarios
Publicar un comentario