DATE // 6 DE OCTUBRE DE 2026
dcWebPanel: Por qué me creé mi propio panel de control de servidor y cómo funciona 🚀
En mi día a día me toca lidiar con un poco de todo: aplicaciones en Node.js / Next.js, sitios en WordPress, bases de datos MySQL y PostgreSQL, cuentas de correo y entornos de prueba. Cada proyecto tiene sus manías y sus requisitos técnicos.
Aunque hoy en día existen mil opciones para alojar proyectos, a mí siempre me ha gustado tener el control directo de mis propios servidores. El problema es que me encontraba con las mismas fricciones una y otra vez: o desplegar Node.js era un proceso engorroso, o clonar un sitio para hacer pruebas requería demasiados pasos manuales, o simplemente echaba en falta una herramienta más rápida y adaptada a cómo me gusta trabajar a mí.
Así que decidí ponerme manos a la obra y montarme mi propia solución a medida: dcWebPanel. Os cuento qué le he metido por dentro y cómo me resuelve el trabajo diario sobre servidores AlmaLinux 9.
🛠️ La Base: Next.js 16 y Modo Simulación
Para la interfaz quería algo que se sintiera instantáneo, limpio y agradable de usar. La monté con Next.js 16 (App Router) y React 19:
- Todo vuela: La navegación es totalmente reactiva, sin recargas de página lentas y con telemetría del servidor en tiempo real.
-
Modo Simulación: Programar herramientas de servidores suele ser pesado porque necesitas una máquina Linux y permisos root para cualquier prueba. Por eso le implementé un modo simulación local (
db.demo.json) para poder retocar la interfaz o programar nuevas funciones directamente en local desde mi portátil sin riesgo de romper nada.
🚀 Despliegues de Node.js con Git y CI/CD Automático
Esta era una de mis mayores prioridades. Quería un flujo ágil para aplicaciones modernas dentro de mi propia máquina:
- Conexión con GitHub: Vinculo el repositorio y la rama que quiero desplegar en un par de clics (con soporte para Deploy Keys en repos privados).
-
Asistente para
package.json: Le metí un analizador que lee el repo, detecta el framework (Next.js, Express, NestJS...), me sugiere los scripts de build y arranque y el puerto interno. Con un clic deja Nginx configurado apuntando a ese puerto. -
Auto-Deploy por Webhook: Al hacer
git push, GitHub avisa al webhook del panel (verificado con firma HMAC-SHA256). El panel hace elgit pull, inyecta las variables de entorno, compila y reinicia el servicio. -
Servicio nativo Systemd: La app corre como un servicio del sistema Linux (
cwp-app-midominio.service). Si crashea por cualquier motivo, el kernel la reinicia solo; y si se reinicia el servidor, arranca automáticamente. - Logs en directo: Puedo ver en tiempo real por pantalla cómo se van instalando los paquetes de npm y cómo compila el código, con historial de versiones para volver atrás con un clic si hiciera falta.
🧪 Staging en 1-Clic (Clonar webs para pruebas)
Montar entornos de prueba para clientes o para probar cambios antes de tocarlos en producción me quitaba demasiado tiempo. Desarrollé un motor de Staging automatizado:
-
Pulso un botón en cualquier dominio (por ejemplo, un WordPress) y automáticamente me genera el subdominio
staging.midominio.com. - Copia los archivos, duplica la base de datos MariaDB y reescribe las URLs dentro de la base de datos (respetando datos serializados) para que todo funcione a la primera.
- Me deja un clon exacto en cuestión de segundos para probar actualizaciones o código sin tocar producción.
⚡ Rendimiento y Gestión Práctica
Para la parte web, busqué una combinación que fuera muy rápida pero sin perder compatibilidad:
-
Nginx + Apache: Nginx por delante con terminación SSL (Let's Encrypt automático) y micro-caché FastCGI en memoria para responder al instante, y Apache por detrás para mantener soporte total de
.htaccess. - Multi-PHP independiente: Cada web puede usar una versión distinta de PHP (8.0 a 8.4, o 7.4 si hay algún proyecto antiguo), con pools de procesos aislados.
- phpMyAdmin en 1 clic: Acceso instantáneo por Single Sign-On (SSO) con tokens de un solo uso, sin tener que teclear contraseñas cada vez que entro a revisar una base de datos.
🤖 Conexión con Agentes de Inteligencia Artificial (MCP)
Como utilizo asistentes de IA en mi día a día, integré un servidor Model Context Protocol (MCP) con más de 50 herramientas del panel.
Esto me permite pedirle a un asistente (como Claude Desktop o Antigravity) que revise la memoria del servidor, consulte errores en los logs o cree un nuevo dominio, utilizando llamadas estructuradas y seguras en lugar de darle acceso SSH root indiscriminado.
En Resumen
Al final, dcWebPanel nació como la respuesta a mis propias necesidades cotidianas: quería una herramienta ágil, moderna y que me permitiera gestionar mis proyectos y servidores exactamente como me gusta trabajar.
¡Iré compartiendo más avances según vaya puliendo cosas! Si tenéis curiosidad por algún detalle de la implementación técnica, me podéis escribir a través de la sección de contacto.

