ip ImnovaPanel ImnovaPanel
Documentación · ImnovaPanel 0.71.314 beta

Guía Técnica & Manual del Administrador

Instalación, primer acceso, administración del servidor y de las cuentas, panel del cliente, correo, seguridad, backups, migraciones, CLI iapanel, API, licencias y el historial de versiones.

Empezar

Introducción

Guía completa para instalar, administrar y operar ImnovaPanel, el panel de hosting para servidores AlmaLinux 9.

ImnovaPanel es un panel de control de hosting autoadministrado para servidores AlmaLinux 9. Reúne en una sola plataforma la administración de sitios web, dominios, DNS, certificados SSL, correo, bases de datos, archivos, FTP, seguridad, copias de respaldo y aplicaciones Node.js y Python.

Tiene dos experiencias separadas:

  • Panel de administración (puerto 2087): para quien administra el servidor. Controla cuentas, planes, revendedores, servicios, firewall, correo, PHP, backups y migraciones.
  • Panel del cliente (puerto 2083): para cada cuenta de hosting. El cliente administra solo sus dominios, correo, bases de datos, archivos, tareas programadas y aplicaciones, sin acceso administrativo al servidor.
Importante

ImnovaPanel está en beta (versión 0.71). Las funciones descritas en esta documentación están disponibles, salvo que se indique lo contrario. Consulta Limitaciones y hoja de ruta para conocer lo que todavía está en evolución.

Por dónde empezar

Si quieres… Lee
Saber si tu servidor es compatible Requisitos del sistema
Instalar el panel Instalación
Entrar por primera vez y configurar hostname y SSL Primer acceso
Activar tu licencia Licencias
Crear tu primera cuenta de hosting Cuentas y planes
Migrar sitios desde cPanel Migraciones
Publicar una app Node.js o Python Aplicaciones Node.js y Python
Actualizar el panel Actualizaciones
Resolver un problema Solución de problemas
Ver qué cambió en cada versión Changelog

Qué incluye ImnovaPanel

Área Componentes
Servidor web Nginx como proxy frontal y Apache como backend local, PHP-FPM por dominio
PHP Versiones 7.4, 8.0, 8.1, 8.2, 8.3, 8.4 y 8.5 (Remi), selección por dominio
DNS BIND con zonas administradas desde el panel
SSL Let's Encrypt para el hostname del panel, dominios, subdominios y mail.dominio
Correo Exim, Dovecot, OpenDKIM, SpamAssassin y webmail Roundcube
Bases de datos MariaDB y phpMyAdmin con acceso por token temporal
Archivos Administrador de archivos web y FTP virtual (vsftpd)
Aplicaciones Node.js y Python con despliegue desde ZIP, RAR o TAR
Seguridad CSF/LFD, ModSecurity, ClamAV, 2FA, bloqueo por intentos, auditoría
Backups Formato nativo con verificación SHA-256, restauración e importación desde cPanel
Operación CLI iapanel: diagnóstico, actualización con rollback, estado y licencias

Convenciones de esta documentación

  • Los comandos se ejecutan como root en el servidor, salvo que se indique otra cosa.
  • srv.tudominio.com representa el hostname de tu servidor y 203.0.113.10 su IP pública. Reemplázalos por los tuyos.
  • Los bloques destacados indican información importante:
Nota

Información adicional útil.

Atención

Algo que puede provocar pérdida de servicio o de datos si no se tiene en cuenta.

Esta documentación corresponde a ImnovaPanel 0.71.314. Para saber qué versión tienes instalada, ejecuta iapanel version o mira el número debajo del logo en el panel. Consulta Versiones para la política de versiones y canales.

Empezar

Requisitos del sistema

Sistema operativo, hardware, red y DNS necesarios para instalar ImnovaPanel.

ImnovaPanel se instala sobre un servidor AlmaLinux 9 limpio. El instalador configura todos los servicios de hosting, por lo que no debe ejecutarse sobre un servidor que ya aloja sitios o tiene otro panel de control.

Sistema operativo

Requisito Detalle
Distribución AlmaLinux 9.x, 64 bits (x86_64)
Instalación Mínima (minimal), recién instalada, sin otro panel de control
Acceso Usuario root o acceso con sudo a una sesión de root
Repositorios Acceso a internet para BaseOS, AppStream, CRB, EPEL y Remi
SELinux Compatible. El instalador configura los contextos y puertos necesarios
Precaución

No instales ImnovaPanel en un servidor con cPanel, Plesk, DirectAdmin u otro panel. El instalador reemplaza la configuración de Nginx, Apache, BIND, Exim, Dovecot, MariaDB y vsftpd.

Debian, Ubuntu y AlmaLinux 10 no están soportados en producción.

Hardware

Recurso Mínimo Recomendado para producción
CPU 1 vCPU 2 a 4 vCPU
RAM 2 GB 4 GB o más
Swap 1 GB 2 GB o ZRAM
Disco 20 GB SSD 50 GB NVMe o más, según los sitios alojados
Sistema de archivos XFS o ext4 XFS (permite cuotas por cuenta con xfs_quota)

El panel y su agente usan aproximadamente 110 MB de RAM en reposo. El resto de la memoria la consumen los servicios de hosting: PHP-FPM, MariaDB, Exim, Dovecot, SpamAssassin, ClamAV y los sitios alojados.

Consejo

Con 1 GB de RAM el servidor puede instalar el panel, pero ClamAV y SpamAssassin consumen mucha memoria. Si usas un VPS pequeño, instala con ISERVERPANEL_INSTALL_CLAMAV=0 (ver Instalación).

Red

  • Una IPv4 pública estática asignada directamente al servidor. La licencia se vincula a esta IP.
  • IPv6 no es necesario. ImnovaPanel aplica una política IPv4-first y deshabilita IPv6 en los servicios.
  • El proveedor debe permitir tráfico entrante en los puertos listados en Puertos y firewall.
  • Para enviar correo, el proveedor debe permitir el puerto 25 saliente. Muchos proveedores lo bloquean por defecto y lo habilitan a pedido.

DNS y hostname

Para producción necesitas un hostname completo (FQDN), por ejemplo srv.tudominio.com, con un registro A que apunte a la IP del servidor. Se usa para:

  • el certificado SSL del panel (Let's Encrypt),
  • la identidad del servidor de correo,
  • los accesos cortos del panel.

Si todavía no tienes hostname, el panel puede instalarse en modo provisorio por IP y configurarse después. Ver Primer acceso.

Registros recomendados

Registro Nombre Valor
A srv.tudominio.com IP del servidor
A ns1.tudominio.com y ns2.tudominio.com IP del servidor (si el servidor será DNS autoritativo)
A mail.tudominio.com IP del servidor
PTR (rDNS) IP del servidor srv.tudominio.com
Importante

El registro PTR (DNS inverso) se configura en el panel de tu proveedor de VPS, no en ImnovaPanel. Sin un PTR correcto, Gmail y Outlook suelen rechazar o marcar como spam el correo del servidor.

Licencia

Necesitas una licencia activa o de prueba vinculada a la IP pública del servidor. Sin licencia válida el panel queda bloqueado. Ver Licencias.

Lista de verificación

Antes de instalar, confirma:

  • AlmaLinux 9 limpio, 64 bits, con acceso root.
  • Al menos 2 GB de RAM y 20 GB de disco libres.
  • IPv4 pública estática.
  • Hostname con registro A apuntando al servidor (o decisión de usar modo provisorio).
  • PTR configurado en el proveedor.
  • Puerto 25 saliente habilitado, si vas a enviar correo.
  • Clave de licencia (o solicitud de prueba) para la IP del servidor.
Empezar

Instalación

Instala ImnovaPanel en un servidor AlmaLinux 9 limpio, paso a paso.

La instalación descarga el paquete oficial de ImnovaPanel, ejecuta el instalador para AlmaLinux 9 y activa tu licencia. Antes de empezar, revisa los requisitos del sistema.

1. Preparar el servidor

Conéctate por SSH como root y actualiza el sistema:

bash
dnf -y update
reboot

Si ya tienes el hostname definitivo, configúralo antes de instalar. El instalador lo detecta automáticamente:

bash
hostnamectl set-hostname srv.tudominio.com

2. Descargar e instalar

bash
curl -fsSL https://imnovapanel.net/downloads/install.sh | bash

El instalador descarga la última versión desde imnovapanel.net, verifica su suma SHA-256 contra el manifiesto de la versión y recién entonces ejecuta el instalador para AlmaLinux 9.

Si prefieres revisar el script antes de ejecutarlo:

bash
curl -fsSL -o install.sh https://imnovapanel.net/downloads/install.sh
less install.sh
bash install.sh

El instalador verifica que el sistema sea AlmaLinux 9 y que se ejecute como root. Si no se cumple alguna condición, se detiene sin modificar el servidor.

La duración depende del proveedor y de la velocidad de los repositorios: se instalan y configuran decenas de paquetes, incluidas cinco versiones de PHP.

3. La licencia se activa sola

No hace falta ningún paso extra: la licencia se identifica por la IPv4 pública del servidor. Al terminar, el instalador consulta el servidor de licencias con esa IP y, si tiene una licencia o una prueba activa, el panel queda habilitado.

Si todavía no habías pedido la licencia, pídela en el portal de clientes para la IP del servidor. El panel la detecta solo en menos de 5 minutos. Para validarla en el momento, ejecuta:

bash
iapanel license-check

El comando consulta el servidor de licencias con la IP del servidor y verifica la firma de la respuesta. Ver Licencias.

4. Verificar la instalación

bash
iapanel doctor

doctor revisa servicios, configuración de Nginx, Apache y BIND, permisos, puertos, firewall, licencia y agente privilegiado. El resultado final debe mostrar FAIL=0. Los avisos (WARN) indican recomendaciones, no errores. Ver CLI iapanel.

Al terminar, el instalador muestra las direcciones de acceso:

text
Admin:   https://srv.tudominio.com:2087/
Client:  https://srv.tudominio.com:2083/
Webmail: https://srv.tudominio.com:2096/roundcube/
CLI:     iapanel

Continúa con Primer acceso.

Qué hace el instalador

El instalador ejecuta estos pasos en orden:

  1. Verifica root y AlmaLinux 9, y detecta la IPv4 y el hostname.
  2. Habilita los repositorios EPEL, CRB y Remi.
  3. Instala Nginx, Apache (httpd), PHP 7.4 a 8.5 con PHP-FPM, MariaDB, BIND, Exim, Dovecot, OpenDKIM, SpamAssassin, vsftpd, Certbot, Node.js, Python 3, Roundcube, phpMyAdmin, ModSecurity y, opcionalmente, ClamAV.
  4. Aplica la política IPv4-first.
  5. Copia la aplicación a /opt/iserverpanel y compila la interfaz.
  6. Escribe la configuración en /etc/iserverpanel/iserverpanel.env con un secreto de sesión aleatorio.
  7. Configura MariaDB solo en 127.0.0.1 y aplica un perfil de rendimiento.
  8. Configura Apache como backend local (127.0.0.1:8080 y 8443) y Nginx como proxy frontal.
  9. Registra los puertos del panel en SELinux y los abre en firewalld.
  10. Configura phpMyAdmin, Roundcube, BIND, el correo y el FTP virtual.
  11. Instala el agente privilegiado imnovapanel-agent, el servicio iserverpanel y la CLI iapanel.
  12. Consulta el estado de la licencia.
  13. Ajusta permisos, logrotate y tareas programadas, y valida la instalación.
  14. Instala CSF/LFD como firewall (opcional). Para no cortar tu conexión, abre el puerto SSH real del servidor y agrega la IP desde la que instalas a /etc/csf/csf.allow.

Opciones del instalador

Se pasan como variables de entorno a bash:

bash
curl -fsSL https://imnovapanel.net/downloads/install.sh | ISERVERPANEL_PANEL_HOSTNAME=srv.tudominio.com ISERVERPANEL_INSTALL_CLAMAV=0 bash
Variable Valor por defecto Descripción
ISERVERPANEL_PANEL_HOSTNAME hostname del sistema Hostname del panel
ISERVERPANEL_SHARED_IP IPv4 detectada IP compartida de las cuentas de hosting
ISERVERPANEL_INSTALL_CSF 1 Instala CSF/LFD. 0 deja solo firewalld
ISERVERPANEL_INSTALL_CLAMAV 1 Instala ClamAV. 0 lo omite (recomendado en servidores de poca RAM)
ISERVERPANEL_INSTALL_PHP_STACKS 1 Instala las versiones de PHP de Remi
ISERVERPANEL_ADMIN_PORT 2087 Puerto HTTPS del panel de administración
ISERVERPANEL_CLIENT_PORT 2083 Puerto HTTPS del panel del cliente
ISERVERPANEL_WEBMAIL_PORT 2096 Puerto HTTPS del webmail
ISERVERPANEL_HOSTING_ROOT /home Directorio de las cuentas de hosting
ISERVERPANEL_BACKUP_DIR /backup Destino de los backups nativos
Atención

Cambiar los puertos del panel no está probado tan extensamente como los valores por defecto. Mantén 2087, 2083 y 2096 salvo que tengas una razón concreta.

Si la instalación falla

  • Revisa el último mensaje [iserverpanel:warning] o el error mostrado en pantalla.
  • Si falló la instalación de CSF, consulta /var/log/iserverpanel-csf-install.log. El resto del panel queda instalado y funciona con firewalld.
  • Comprueba la conectividad con los repositorios: dnf repolist.
  • Una vez corregida la causa, ejecuta iapanel doctor para ver qué componentes necesitan atención.

Si el problema persiste, consulta Solución de problemas.

Empezar

Primer acceso

Entrar al panel, configurar el hostname y su certificado SSL, activar la doble autenticación y conocer los accesos del panel.

Direcciones del panel

Acceso Dirección Quién entra
Administración https://srv.tudominio.com:2087/ Administrador del servidor y revendedores
Cliente https://srv.tudominio.com:2083/ Cada cuenta de hosting
Webmail https://srv.tudominio.com:2096/roundcube/ Cada buzón de correo

Cuando el hostname y su SSL están configurados, también funcionan los accesos cortos desde el dominio del servidor:

Ruta Abre
/iadmpanel Panel de administración
/ipanel Panel del cliente
/webmail Roundcube

Credenciales

  • Administrador: usuario root y la contraseña de root del servidor. También se acepta el nombre admin, que equivale a root.
  • Revendedor: su propio usuario Linux y contraseña, entrando por el portal de administración (:2087). El panel detecta que es revendedor y abre el modo revendedor, nunca el de administrador. Ver Revendedores.
  • Cliente: el usuario de su cuenta de hosting y su contraseña, en el portal del cliente (:2083).
Importante

El portal de administración solo acepta al usuario root. Los usuarios de las cuentas de hosting no pueden entrar como administradores aunque su contraseña sea correcta.

Para cambiar la contraseña del administrador, cambia la de root en el servidor con passwd.

Acceso de emergencia por consola

Si no puedes entrar con la contraseña, genera un enlace de acceso de un solo uso desde SSH:

bash
iapanel login

El enlace caduca a los 120 segundos. Ver CLI iapanel.

Configurar el hostname y su SSL

Entra al panel de administración y abre Change Hostname (Configuración de red y hostname). Es la pantalla única para:

  • hostname del servidor y zona base,
  • IP compartida de las cuentas,
  • resolvers DNS y zona horaria,
  • registros DNS recomendados,
  • certificado SSL del hostname.

Pasos:

  1. Escribe el hostname completo, por ejemplo srv.tudominio.com.
  2. Revisa la tabla de registros DNS recomendados: hostname, admin, login, webmail, mail, ns1 y ns2. Crea esos registros en tu proveedor DNS o en la zona que administre el propio servidor.
  3. Espera a que el registro A del hostname apunte a la IP del servidor.
  4. Pulsa Aplicar Hostname y Emitir SSL. El panel valida el DNS, emite el certificado con Let's Encrypt y lo aplica a los puertos 2087, 2083 y 2096.

Para renovar el certificado sin cambiar nada más, usa Solo Renovar SSL. También puedes repararlo desde SSH:

bash
iapanel ssl-hostname

Modo provisorio sin hostname

Si instalaste sin un hostname válido, el panel queda en modo instalación inicial y funciona por IP:

  • Administración: https://203.0.113.10:2087/
  • Cliente: https://203.0.113.10:2083/
  • Webmail: https://203.0.113.10:2096/roundcube/

En este modo el certificado es local y el navegador muestra una advertencia de seguridad. Es normal: acéptala solo para completar la configuración inicial. La pantalla de hostname muestra un aviso hasta que cargues un FQDN real y emitas su SSL.

Atención

No uses el modo provisorio en producción: los clientes verían advertencias de certificado y el correo del servidor no tendría una identidad válida.

Activar la doble autenticación (2FA)

ImnovaPanel admite códigos TOTP de 6 dígitos para el administrador, compatibles con Google Authenticator, Microsoft Authenticator, Authy, 1Password y aplicaciones similares.

  1. En el panel de administración, abre Security & Access Control (Seguridad y acceso) y activa la política de doble factor.
  2. Genera tu código de configuración y escanea el QR con tu aplicación.
  3. Confirma con el código de 6 dígitos que muestra la aplicación.

A partir de ese momento, el inicio de sesión pide el código después de la contraseña. El código también protege la terminal web: ninguna sesión puede abrirla sin haber completado el segundo factor.

Consejo

Guarda un acceso SSH al servidor como vía de recuperación. Si pierdes el dispositivo con el 2FA, iapanel login te permite entrar y reconfigurarlo.

Protección contra intentos fallidos

Por defecto, después de 5 intentos fallidos en 30 minutos para un mismo usuario desde la misma IP, ese acceso queda bloqueado 15 minutos. El bloqueo afecta solo a esa combinación de usuario e IP: el resto de los usuarios sigue entrando con normalidad. Los valores se ajustan en Security & Access Control. Ver Seguridad.

Idioma y apariencia

  • El idioma por defecto es inglés. Puedes cambiarlo desde el selector de idioma; la preferencia queda guardada en el navegador.
  • El panel incluye varios temas visuales, con modo claro y oscuro. El tema Beta es el más reciente.

Siguientes pasos

  1. Activa tu licencia si aún no lo hiciste.
  2. Revisa los planes y crea tu primera cuenta.
  3. Configura la política de backups.
  4. Verifica la entregabilidad del correo.
Empezar

Licencias

Cómo se activa y valida la licencia de ImnovaPanel, qué pasa si deja de ser válida y cómo cambiar la IP del servidor.

Verificador de Licencia en Tiempo Real

Ingresa la IP de tu servidor para consultar su estado en la red:

Clúster de Licencias Online

Cada instalación de ImnovaPanel necesita una licencia activa (comercial o de prueba) vinculada a la IPv4 pública del servidor.

Cómo funciona

  1. Pides la licencia (o la prueba) en el portal de clientes para la IP pública del servidor.
  2. El panel consulta el servidor de licencias con su IP: al terminar la instalación y luego de forma periódica.
  3. El servidor de licencias responde con un estado firmado digitalmente (Ed25519).
  4. ImnovaPanel verifica la firma con la clave oficial de ImnovaPanel, que viene incluida en el propio panel, y guarda la respuesta firmada.
  5. Un temporizador de systemd vuelve a validar la licencia 2 minutos después de cada arranque y luego cada 5 minutos.

Cada comprobación vuelve a verificar la respuesta firmada. Editar la configuración o el archivo de licencia no sirve para habilitar una licencia: el panel solo acepta respuestas firmadas con la clave oficial.

Activar una licencia

No necesitas ingresar ninguna clave: basta con que la IP del servidor tenga una licencia activa en el portal. Para validarla en el momento, sin esperar la próxima comprobación automática:

bash
iapanel license-check

Opcionalmente puedes indicar la clave con --license=TU-CLAVE. En ese caso queda guardada en /etc/iserverpanel/iserverpanel.env (ISERVERPANEL_LICENSE_KEY), así que las validaciones siguientes no necesitan volver a indicarla.

También puedes activarla desde la pantalla de licencia del panel. Para eso, el panel pide las credenciales de root.

Consultar el estado

bash
iapanel license-check --no-activate
iapanel agent license

El primero consulta el estado sin intentar una activación. El segundo muestra la verificación independiente que hace el agente privilegiado. No muestra la clave ni la firma.

Estados de la licencia

Código Significado Qué hacer
LICENSE_OK Licencia activa y validada Nada
LICENSE_MISSING El servidor no tiene licencia Activar una clave
LICENSE_INACTIVE La licencia existe pero no está activa (suspendida o cancelada) Revisar el estado de la suscripción
LICENSE_INVALID_SIGNATURE La firma de la respuesta no es válida Ejecutar iapanel license-check de nuevo; si persiste, contactar soporte
LICENSE_NOT_ACTIVATED La clave existe pero este servidor no está activado Activar la clave en este servidor
LICENSE_EXPIRED La licencia venció Renovar
LICENSE_VALIDATION_STALE No se pudo validar dentro del período de gracia Revisar la conectividad con el servidor de licencias
LICENSE_ACCOUNT_LIMIT Se superó el máximo de cuentas del plan Eliminar cuentas o cambiar de plan

Período de gracia

Si el servidor de licencias no responde (un corte de red, por ejemplo), ImnovaPanel sigue funcionando con la última validación correcta durante 72 horas. Pasado ese plazo sin validar, el estado pasa a LICENSE_VALIDATION_STALE.

Qué pasa si la licencia deja de ser válida

  • El panel queda bloqueado: el inicio de sesión y la API del panel muestran el motivo del bloqueo.
  • Los servicios alojados siguen funcionando mientras la licencia no esté suspendida: sitios web, correo, bases de datos, DNS y FTP no se detienen.
  • Suspensión confirmada: si tu licencia está suspendida, vencida o cancelada, los sitios web pasan a mostrar una página de suspensión después de 72 horas. Ver Suspensión de los sitios web.
  • Límite de cuentas: cuando la cantidad de cuentas alcanza el máximo del plan, el panel sigue disponible pero no permite crear cuentas nuevas. Si la cantidad lo supera (por ejemplo, al pasar a un plan menor), el panel se bloquea con LICENSE_ACCOUNT_LIMIT hasta volver a estar dentro del límite.
Nota

Una licencia vencida nunca borra cuentas ni datos. Al reactivarla, el panel vuelve a estar disponible con toda la información.

Suspensión de los sitios web

Cuando el servidor de licencias confirma que la licencia está suspendida, vencida, revocada o cancelada, ImnovaPanel aplica este proceso:

MomentoQué pasa
Se confirma la suspensiónEl panel se bloquea y muestra al administrador una cuenta regresiva de 72 horas. Los sitios siguen funcionando.
A las 72 horasTodos los sitios web del servidor muestran una página de "Sitio temporalmente suspendido" (error HTTP 503, sin indexar en buscadores).
Al renovar la licenciaLos sitios vuelven a funcionar solos, en pocos minutos. No se pierde ningún dato.

Durante la suspensión no se detienen el correo, las bases de datos, el DNS ni el FTP, y los certificados SSL pueden seguir renovándose.

Nota

La suspensión de los sitios solo ocurre cuando el servidor de licencias confirma el estado con una respuesta firmada, que ImnovaPanel vuelve a verificar. Si la licencia no puede validarse por un corte de red o una falla del servidor de licencias, solo se bloquea el panel y los sitios nunca se suspenden.

Cada etapa queda registrada en la auditoría: suspensión confirmada, suspensión aplicada y sitios restablecidos.

Licencia de prueba

La prueba gratuita dura 15 días, se vincula a la IP del servidor y activa todas las funciones del panel. Al terminar puedes convertirla en una licencia comercial sin reinstalar: solo hay que activar la nueva clave.

Cambiar la IP del servidor

Si migras a otro servidor o cambia tu IP:

  1. Solicita la reasignación de la licencia a la nueva IP.
  2. En el servidor nuevo, ejecuta:
bash
iapanel license-check

La licencia anterior deja de validar en la IP vieja.

Opciones de iapanel license-check

Verificador de Licencia por IP en Tiempo Real

Puedes verificar directamente cómo responde el servidor central de licenciamiento para cualquier dirección IPv4:

Panel de administración

Cuentas y planes

Crear, modificar, suspender y eliminar cuentas de hosting, y definir planes (packages) con límites de disco, correo y recursos.

Una cuenta de hosting es un usuario Linux aislado con su propio directorio /home/usuario, sus dominios, correo, bases de datos, FTP, tareas programadas y aplicaciones. Cada cuenta usa un plan (package) que define sus límites.

Crear una cuenta

En List Accounts (Cuentas), pulsa Create new account (Crear nueva cuenta) y completa:

Opción Descripción
--license=CLAVE Clave a validar o activar
--no-activate Solo consulta el estado, sin intentar activar
--quiet Sin salida, para uso en tareas programadas
--server=URL
Campo Descripción
Dominio principal Dominio de la cuenta, por ejemplo miempresa.com
Usuario Nombre del usuario Linux. Solo minúsculas, números y guiones
Contraseña Contraseña del panel del cliente y del acceso FTP/SSH principal (mínimo 8 caracteres)
Email de contacto Correo del cliente
Plan Package que define los límites

Al crear la cuenta, ImnovaPanel:

  • crea el usuario Linux, /home/usuario y public_html con los permisos correctos (incluido el contexto SELinux),
  • crea la zona DNS del dominio,
  • genera los vhosts de Nginx y Apache y el pool PHP-FPM,
  • aplica los límites del plan (cuota de disco, recursos y correo por hora),
  • registra el evento en la auditoría y en /var/log/iserverpanel-accounting.log.

El certificado SSL del dominio se emite después, cuando el DNS apunta al servidor. Ver SSL.

Administrar cuentas

La lista de cuentas tiene buscador, paginación y selección múltiple. Para cada cuenta puedes:

Acción Qué hace
Panel Abre el panel del cliente como ese usuario, sin conocer su contraseña. Un botón permite volver al administrador
Temporary URL Genera una URL temporal para ver el sitio antes de apuntar el DNS
Modificar plan Cambia el package y vuelve a aplicar sus límites
Contraseña Restablece la contraseña principal de la cuenta
Cambiar dominio Cambia el dominio principal
Correo/hora Define un límite propio de envíos por hora para la cuenta
Suspender / Activar Suspende o reactiva la cuenta completa
Eliminar Elimina la cuenta y todos sus recursos

La columna de uso muestra el disco y el ancho de banda consumidos. Cuando una cuenta se acerca o supera un límite, aparece una advertencia de sobreuso.

Suspender una cuenta

La suspensión bloquea el acceso del cliente al panel y el servicio de la cuenta. Al reactivarla se restablecen los permisos. Los datos no se modifican.

Eliminar una cuenta

La eliminación borra el usuario Linux, sus archivos, zonas DNS, vhosts, pools PHP-FPM, buzones, cuentas FTP y bases de datos registradas en el panel.

Precaución

La eliminación es definitiva. Antes de eliminar una cuenta importante, genera un backup. La eliminación masiva de cuentas seleccionadas pide confirmación, pero no hay papelera.

Si alguna carpeta está en uso durante el borrado, el panel reintenta, informa la advertencia y la deja marcada como pendiente de limpieza (*.iserverpanel-delete-pending-*).

Planes (packages)

En Add/Edit Packages (Planes) defines los límites que heredan las cuentas:

Límite Descripción
Disco Cuota de disco de la cuenta
Ancho de banda Transferencia mensual asignada
Cuentas de correo Máximo de buzones
Bases de datos Máximo de bases MariaDB
Cuentas FTP Máximo de usuarios FTP adicionales
Subdominios Máximo de subdominios
SSH Permite o no el acceso por shell
IP dedicada Asigna una IP propia a la cuenta
CGI Permite scripts CGI
Versión de PHP Versión por defecto de los dominios nuevos
Correo por hora Límite de envíos por hora
Lista de características Qué secciones ve el cliente en su panel
Tema Tema visual del panel del cliente

Cómo se aplican los límites

  • Disco: se aplica una cuota real del sistema (setquota o xfs_quota, según el sistema de archivos). El límite blando está al 95 % y el duro al 100 %: al llegar al 100 % no se puede escribir más en la cuenta.
  • Correo con disco excedido: si la cuenta supera su cuota de disco, Exim bloquea el envío autenticado y la recepción de correo de sus dominios hasta que libere espacio. La medición se actualiza cada 2 minutos, incluso si el disco se llenó por FTP o SSH.
  • Recursos: RAM, CPU, IO, IOPS y cantidad de procesos se limitan por usuario con systemd/cgroups v2. Ver Resource Limits (cgroups v2).
  • Correo por hora: se toma el valor de la cuenta; si no tiene, el del plan; si el plan no lo define, la política global de Exim.

Al editar un plan, todas las cuentas que lo usan reciben los nuevos límites. Al cambiar el plan de una cuenta, se vuelven a aplicar.

Nota

Los límites de recursos por cgroups no equivalen a CloudLinux LVE. Protegen el servidor de abusos comunes, pero no ofrecen el mismo nivel de aislamiento.

Listas de características

En la pestaña Feature Manager (Gestor de características) de los planes defines qué secciones ve el cliente: dominios, correo, bases de datos, FTP, aplicaciones, tareas cron, zona DNS, administrador de archivos, seguridad, terminal, webmail y phpMyAdmin. Asigna una lista a cada plan.

Cuotas

Manage Quotas (Gestión de cuotas) muestra y ajusta las cuotas reales de disco de cada cuenta. Para que funcionen, el sistema de archivos de /home debe tener cuotas habilitadas. XFS es el sistema recomendado.

Registro de cuentas

Los eventos del ciclo de vida de las cuentas (crear, eliminar, suspender, reactivar, cambiar dominio, backups y restauraciones) quedan en:

text
/var/log/iserverpanel-accounting.log

Es un registro de texto plano, útil para revisar por consola o enviar a un sistema de logs centralizado.

Panel de administración

Revendedores

Cómo funciona el sistema de revendedores de ImnovaPanel, qué puede hacer cada rol y cómo se aplican los límites.

ImnovaPanel tiene tres roles aislados:

Rol Alcance
Administrador (root) Todo el servidor: servicios, firewall, planes de revendedor, revendedores y propiedad de las cuentas
Revendedor Solo las cuentas de hosting que le pertenecen
Cliente Solo su propia cuenta y sus servicios
Nota

El sistema de revendedores es una primera versión comercializable. La marca blanca por revendedor, los nameservers propios por revendedor, la integración con facturación, los sub-revendedores y los tokens de API delegados están en la hoja de ruta.

Cómo entra un revendedor

El revendedor inicia sesión en el portal de administración (:2087) con su propio usuario Linux y contraseña. ImnovaPanel detecta que es revendedor y abre el Modo: Revendedor. Nunca recibe privilegios de administrador del servidor.

Qué puede hacer un revendedor

  • Ver su plan de revendedor y el uso en tiempo real.
  • Crear, editar, suspender, reactivar y eliminar las cuentas que le pertenecen.
  • Crear planes para sus clientes, si su plan lo permite.
  • Usar los planes globales, si su plan lo permite.
  • Entrar al panel de un cliente propio y volver a su sesión.
  • Administrar dominios, DNS, SSL, correo, bases de datos, FTP, archivos, tareas cron y aplicaciones Node.js/Python de sus cuentas.
  • Desplegar aplicaciones desde ZIP/RAR/TAR en los dominios de sus clientes.

Límites que se aplican

El backend aplica estos límites aunque el revendedor llame a la API directamente:

  • Cantidad máxima de cuentas.
  • Bolsas de disco y ancho de banda asignadas.
  • Límites de dominios, buzones, bases de datos, cuentas FTP y aplicaciones.
  • Permisos para crear planes, usar planes globales, editar DNS y habilitar SSH.
  • Política de sobreventa (overselling).

Aislamiento

  • Cada cuenta de hosting tiene un propietario persistente: root o el usuario del revendedor.
  • Los recursos relacionados (correo, bases, dominios) se autorizan a través de la cuenta propietaria.
  • Las listas se filtran antes de salir de la API, y las acciones que modifican el sistema vuelven a verificar la propiedad.
  • Los servicios del servidor, procesos, red, firewall, logs, política global de correo, configuración de PHP y del servidor, licencia y administración de revendedores quedan reservados al administrador.
  • La auditoría que ve un revendedor contiene solo sus propias acciones.
  • Solo el administrador puede cambiar el propietario de una cuenta.

Configurar un revendedor

  1. En Reseller Center, crea un plan de revendedor con sus límites.
  2. Crea un revendedor nuevo o promueve un usuario existente y asígnale el plan.
  3. Si corresponde, reasigna cuentas existentes al revendedor. El panel valida que entren en su capacidad.
  4. El revendedor entra por el portal de administración con sus credenciales Linux.
Panel de administración

Dominios y DNS

Dominios, subdominios, alias y zonas DNS con BIND. Nameservers propios, registros y dominios que apuntan al servidor sin estar configurados.

Dominios de una cuenta

Cada cuenta tiene un dominio principal y puede agregar:

  • Subdominios (tienda.miempresa.com), con su propio DocumentRoot.
  • Alias de dominio: otros dominios que muestran el mismo sitio.

El cliente los administra desde Domains & SSL certificates (Dominios y SSL) y el administrador desde la cuenta correspondiente. Todos los dominios de las tablas del panel abren https://dominio en una pestaña nueva.

Cómo se sirven los subdominios

  • Cada subdominio tiene un vhost con su propio server_name. No hereda www ni redirige al dominio principal.
  • El contenido del subdominio también está disponible en https://dominio.com/subdominio/.
  • AutoSSL valida solo el host real del subdominio (no fuerza www.subdominio).

Dominios que apuntan al servidor sin estar configurados

Si un dominio apunta a la IP del servidor pero no existe en ninguna cuenta, Nginx responde con un sitio neutral administrado por el panel. Así, un dominio sin configurar nunca muestra la web de otro cliente. Este vhost conserva la ruta /.well-known/acme-challenge/ para poder emitir certificados.

Zonas DNS

ImnovaPanel usa BIND como servidor DNS autoritativo. Cada dominio creado en el panel recibe su zona en /var/named/.

  • Administrador: DNS Zone Manager (Zonas DNS) lista y edita todas las zonas administradas.
  • Cliente: DNS Zone Editor (Zona DNS) edita solo las zonas de sus dominios.

Tipos de registro admitidos: A, AAAA, CNAME, MX, TXT y NS.

Antes de recargar BIND, el panel valida la configuración con named-checkzone y named-checkconf. Si la validación falla, no aplica el cambio.

Nota

El panel solo muestra las zonas que administra: dominios y subdominios de las cuentas, y zonas de parking. Los archivos de zona que agregues a mano en /var/named no aparecen en la lista.

Usar el servidor como DNS de tus dominios

Para que el servidor responda las consultas DNS de los dominios alojados:

  1. Crea los nameservers en la zona de tu dominio base, por ejemplo ns1.tudominio.com y ns2.tudominio.com, apuntando a la IP del servidor.
  2. En el registrador de tudominio.com, registra esos nameservers como glue records (hosts personalizados) con la IP del servidor.
  3. En el registrador de cada dominio de cliente, cambia los nameservers a ns1.tudominio.com y ns2.tudominio.com.
Consejo

Si prefieres usar un DNS externo (Cloudflare, el de tu registrador u otro), no cambies los nameservers: crea en ese proveedor los registros A, MX y TXT equivalentes a los de la zona del panel.

Registros de correo

La zona de cada dominio incluye los registros de correo que el panel administra: mail (A), MX, SPF, DMARC (_dmarc) y DKIM (default._domainkey). Si alguno falta o está mal, usa Reparar DNS en Email Deliverability. Ver Correo.

Dominios en backups

La zona DNS se incluye siempre en los backups de cuenta, para que una restauración recupere web, correo y DNS sin reconstrucción manual.

Panel de administración

Certificados SSL

Certificados Let's Encrypt para el hostname del panel, dominios, subdominios y servidores de correo.

ImnovaPanel emite y renueva certificados gratuitos de Let's Encrypt con Certbot. No usa certificados de otro dominio como sustituto: si un dominio no tiene certificado propio, solo se sirve por HTTP hasta emitirlo.

Certificado del hostname

Protege los puertos del panel (2087, 2083 y 2096) y la identidad del servidor. Se emite desde Change Hostname. Ver Primer acceso.

Desde la consola:

bash
iapanel ssl-hostname

AutoSSL para dominios y subdominios

Desde Domains & SSL certificates, el cliente o el administrador emiten el certificado de cada dominio. El panel:

  1. Verifica que el registro A del dominio apunte a la IP del servidor.
  2. Comprueba localmente que la ruta /.well-known/acme-challenge/ responde a través de Nginx.
  3. Emite el certificado por webroot con Certbot.
  4. Lo aplica a Nginx y Apache y marca el dominio como issued.

Si el DNS todavía no apunta al servidor, el panel devuelve un error explícito y no intenta la emisión. Vuelve a intentarlo cuando el DNS haya propagado.

Importante

Un dominio solo recibe configuración HTTPS cuando tiene su propio certificado en /etc/letsencrypt/live/<dominio>/. Esto evita que los visitantes vean errores de certificado por un nombre que no coincide.

Certificados de correo

Para que los programas de correo y las aplicaciones que envían por SMTP validen el certificado, ImnovaPanel intenta emitir un certificado para mail.<dominio> cuando ese nombre apunta al servidor.

  • Dovecot (IMAP/POP3) usa SNI: presenta el certificado de cada mail.<dominio>.
  • Exim (SMTP) usa una copia privada del certificado en /etc/exim/ssl/imnovapanel-mail/ con permisos para el grupo exim.
  • Si no puede emitirse el certificado de mail.<dominio>, se usa el del hostname como alternativa segura.
Consejo

Configura tus clientes de correo y aplicaciones con el servidor mail.tudominio.com o con el hostname del servidor, nunca con la IP. Así el certificado coincide con el nombre.

Dominios alojados en los puertos del panel

Si un dominio alojado ya tiene certificado, Nginx publica bloques SNI para que https://dominio:2087 y https://dominio:2083 presenten el certificado correcto y muestren el login del panel sin error.

Renovación

Los certificados de Let's Encrypt duran 90 días. La renovación automática la ejecuta el temporizador de Certbot, certbot-renew.timer. Comprueba que esté activo:

bash
systemctl status certbot-renew.timer

Si aparece como inactivo, habilítalo:

bash
systemctl enable --now certbot-renew.timer

Para probar la renovación sin cambiar ningún certificado:

bash
certbot renew --dry-run

Si una renovación falla (por ejemplo, porque el dominio dejó de apuntar al servidor), el certificado vigente sigue sirviéndose hasta su vencimiento. Para el hostname del panel puedes forzar la reparación con iapanel ssl-hostname.

Panel de administración

PHP

Versiones de PHP disponibles, selección por dominio, extensiones y configuración de php.ini.

ImnovaPanel instala PHP desde los repositorios Remi y ejecuta cada dominio con su propio pool PHP-FPM, con el usuario de la cuenta.

Versiones disponibles

Versión Estado Recomendación
PHP 8.5 Disponible Validar la compatibilidad de la aplicación antes de usarla
PHP 8.4 Disponible Recomendada para sitios nuevos
PHP 8.3 Disponible Estable
PHP 8.2 Disponible Estable
PHP 8.1 Disponible Para aplicaciones que aún no soportan versiones más nuevas
PHP 8.0 Disponible Para proyectos heredados compatibles con PHP 8
PHP 7.4 Disponible Para aplicaciones y plugins legacy que requieren PHP 7.4
Nota

ImnovaPanel instala y gestiona múltiples versiones desde PHP 7.4 hasta PHP 8.5 mediante repositorios Remi optimizados con aislamiento de pools PHP-FPM por usuario.

Cambiar la versión de un dominio

El cliente lo hace desde la sección PHP de su panel, y el administrador desde la cuenta. Al aplicar el cambio:

  1. El vhost de Apache pasa a usar el socket PHP-FPM de la versión elegida (/var/opt/remi/phpXX/run/php-fpm/iserverpanel-usuario.sock).
  2. Se recarga el servicio y el sitio queda sirviéndose con la nueva versión en el momento.

Para comprobar qué versión usa un sitio, crea temporalmente un archivo con <?php echo PHP_VERSION; y ábrelo en el navegador. Bórralo al terminar.

Configuración por dominio

Desde el mismo lugar se ajustan los valores de php.ini de cada dominio, dentro de los límites del plan:

  • memory_limit
  • upload_max_filesize
  • post_max_size

El panel escribe esos valores en .user.ini y php.ini del DocumentRoot del dominio. Conserva las líneas que no administra y actualiza solo las claves que controla.

Extensiones

Extensiones Versiones
OPcache, cURL, GD, intl, mbstring, MySQL (mysqlnd), XML, Zip Todas (7.4 a 8.5)
SOAP, Sodium, LDAP, Imagick, Redis PHP 8.4 y 8.5

La pantalla EasyApache 4 del administrador muestra las versiones y extensiones instaladas y permite instalar paquetes de extensiones disponibles en los repositorios.

Nota

La matriz de extensiones por versión sigue ampliándose. Si necesitas una extensión que no aparece, puedes instalarla por SSH con dnf install phpXX-php-<extension> y reiniciar phpXX-php-fpm.

Mantenimiento de pools PHP-FPM

Al eliminar una cuenta, el panel deshabilita sus pools PHP-FPM. También detecta pools huérfanos (de usuarios que ya no existen) para que no impidan arrancar PHP-FPM y provoquen errores 503 en otros sitios.

Los archivos no se borran: se renombran con el sufijo .disabled-… para poder auditarlos o recuperarlos.

Python

Las versiones de Python para aplicaciones también se administran desde EasyApache 4. El panel muestra las versiones disponibles en los repositorios activos y permite instalarlas (pythonX.Y, pythonX.Y-pip y pythonX.Y-devel). Ver Aplicaciones.

Panel de administración

Servidor web

Arquitectura Nginx + Apache, caché, compresión, ModSecurity y plantillas de configuración.

Arquitectura

text
Visitante ──HTTPS──▶ Nginx (80 / 443)
                      │  SSL, contenido estático, caché, compresión
                      ▼
                     Apache (127.0.0.1:8080 / 8443, solo local)
                      │  .htaccess
                      ▼
                     PHP-FPM (un pool por dominio, con el usuario de la cuenta)
  • Nginx está al frente: termina SSL, sirve archivos estáticos, aplica caché y compresión, y redirige a HTTPS.
  • Apache escucha solo en 127.0.0.1, por lo que no es accesible desde internet. Mantiene la compatibilidad con reglas .htaccess.
  • PHP-FPM ejecuta el código PHP de cada dominio con el usuario de su cuenta.
  • Las aplicaciones Node.js y Python tienen su propio proceso y Nginx/Apache les hace de proxy inverso. Ver Aplicaciones.
Precaución

No desinstales ni detengas Nginx: es el punto de entrada de todos los sitios y de los puertos del panel.

Nginx Web Server

La pantalla Nginx Web Server del administrador configura el proxy:

  • caché de Nginx (zona en /var/cache/nginx/iserverpanel),
  • compresión Gzip,
  • límites de tamaño de subida,
  • redirección a HTTPS,
  • soporte de WebSockets para aplicaciones.

Antes de aplicar cualquier cambio, el panel valida la configuración con nginx -t. Si hay un error, no recarga el servicio y muestra el detalle.

ModSecurity

ModSecurity Configuration muestra el estado del WAF, las reglas OWASP CRS, las reglas propias y las deshabilitadas.

Nota

Las reglas CRS no se editan directamente. Para excepciones, agrega reglas propias o deshabilita reglas concretas desde la pantalla; así las actualizaciones de CRS no pisan tus cambios.

Plantillas de configuración

Configuration Templates (Plantillas Config) edita y restaura las plantillas que usa el panel para generar vhosts y configuraciones. Los cambios se aplican a los dominios nuevos y cuando se regenera la configuración de uno existente.

Permisos de los sitios

Al crear cuentas, dominios y subdominios, el panel aplica:

  • chown usuario:usuario sobre los directorios de la cuenta,
  • 711 en /home/usuario y 755 en public_html y los DocumentRoot,
  • el booleano de SELinux httpd_enable_homedirs y restorecon sobre public_html.

Si un sitio devuelve 403 Forbidden después de subir archivos, usa Reparar permisos en el administrador de archivos. Ver Panel del cliente.

Panel de administración

Servicios, procesos y terminal

Controlar los servicios del sistema, ver procesos, consultar logs y usar la terminal web del administrador.

Dashboard

El dashboard del administrador muestra datos reales del servidor, actualizados periódicamente:

  • carga del servidor (1, 5 y 15 minutos) con historial reciente,
  • uso de CPU, memoria y disco,
  • cantidad de cuentas,
  • estado de los servicios básicos con acciones de reinicio y detención.

Servicios del sistema

OS Services (Servicios del OS) muestra el estado de systemd y permite iniciar, detener y reiniciar:

Servicio Unidad
Apache httpd
Nginx nginx
PHP-FPM php-fpm y php81-php-fpm … php85-php-fpm
MariaDB mariadb
Exim exim
Dovecot dovecot
BIND named
CSF / LFD csf, lfd
Panel iserverpanel
Agente privilegiado imnovapanel-agent
Atención

Detener Nginx, Exim o named deja sin servicio a todos los sitios, al correo o al DNS de las cuentas. Usa Reiniciar en lugar de Detener siempre que sea posible.

Process Manager

Process Manager (Procesos) lista los procesos reales del servidor. Se pueden ordenar por PID, usuario, CPU, memoria o comando, y finalizar un proceso concreto.

Precaución

Finalizar procesos del sistema puede dejar servicios caídos. Úsalo para procesos de cuentas que se quedaron colgados o consumen recursos de más.

Logs

  • System Logs (Logs de consola): consulta los registros de Exim, Dovecot, Apache (httpd), error_log, panic, messages y del propio panel.
  • Centralized Logs (Logs centralizados): búsqueda sobre los registros reales del servidor.

Registros propios de ImnovaPanel:

Archivo Contenido
/var/log/iserverpanel-accounting.log Ciclo de vida de las cuentas
/var/log/iserverpanel-restore.log Restauraciones de backups
/var/log/iserverpanel/ Logs del panel
journalctl -u iserverpanel Servicio del panel

Terminal web

Terminal abre una consola real (PTY) en el navegador.

Rol Sesión
Administrador Shell de root en /root
Cliente Shell con el usuario de su cuenta, en su directorio, sin privilegios de administrador

Cada sesión de terminal queda registrada en la auditoría con usuario, rol, IP y fecha.

Por seguridad, el navegador no envía la sesión del panel en la dirección de la terminal: pide primero un ticket de un solo uso que caduca a los 30 segundos. Si la sesión expiró o falta el segundo factor, la terminal no se abre.

Server Health Check

Server Health Check revisa DNS, SSL, servicios, correo y colas, y señala problemas. Las acciones que modifican el sistema piden confirmación. Para un diagnóstico completo desde SSH usa iapanel doctor. Ver CLI.

Panel de administración

Correo del servidor

Configuración de Exim, Dovecot, OpenDKIM y SpamAssassin desde el panel de administración, límites de envío, cola y cuotas de buzones.

El correo de ImnovaPanel usa Exim (SMTP), Dovecot (IMAP y POP3), OpenDKIM (firma DKIM), SpamAssassin (antispam) y Roundcube (webmail). Esta página cubre la administración global. Para buzones, reenviadores y entregabilidad de cada dominio, ver Correo.

Exim Configuration Manager

Desde Exim Configuration Manager el administrador gestiona:

  • límite global de envíos por hora,
  • máximo de fallos permitidos,
  • cola de correo: ver, buscar, reintentar y limpiar mensajes congelados,
  • estado de Exim, Dovecot y SpamAssassin,
  • cantidad de buzones que superan su cuota.

Límite de envíos por hora

El límite efectivo de cada cuenta se decide en este orden:

  1. el límite propio de la cuenta (Correo/hora en la lista de cuentas),
  2. el límite de su plan,
  3. la política global de Exim.

Cuotas de buzones

ImnovaPanel mide el uso real de cada buzón en /var/vmail/<dominio>/<usuario> cada 2 minutos. Cuando un buzón supera su cuota:

  • Exim rechaza la recepción con 550 Mailbox unavailable: mailbox quota exceeded.
  • Exim rechaza el envío autenticado desde ese buzón.

El cliente ve el estado OK o Excedido de cada casilla en Email Accounts.

Además, si la cuenta de hosting supera su cuota de disco, se bloquea el envío y la recepción de todos sus dominios hasta liberar espacio. Ver Cuentas y planes.

DKIM

Cada dominio recibe una clave DKIM con el selector default. El panel:

  • guarda las claves privadas en /etc/exim/dkim/<dominio>/default.private (root:exim, modo 640),
  • mantiene la tabla /etc/exim/dkim/keypaths con los dominios autorizados a firmar,
  • publica la clave pública en la zona DNS como default._domainkey.

Para comprobar la clave de un dominio:

bash
opendkim-testkey -d tudominio.com -s default -vvv

El resultado debe terminar en key OK. El aviso key not secure solo indica que el dominio no usa DNSSEC.

SpamAssassin

SpamAssassin Antispam configura reglas globales y por dominio. Las reglas de un dominio nunca pueden ser más permisivas que la política global. SpamAssassin escucha solo en 127.0.0.1.

TLS de SMTP e IMAP

El panel busca certificados válidos para mail.<dominio> y para el hostname, y los aplica a Exim y Dovecot. Antes de recargar Exim valida la configuración con exim -bV. Ver SSL.

Identidad del correo del sistema

Los mensajes que genera el propio servidor (cron, rebotes, alertas de root) salen con el dominio base del hostname. Por ejemplo, con el hostname srv.tudominio.com se usa tudominio.com.

Para que ese correo llegue bien, publica en el DNS autoritativo de tudominio.com sus registros SPF, DKIM y DMARC.

Comprobaciones útiles

bash
# Cómo se entregaría un correo a una dirección
exim -bt contacto@tudominio.com

# Validar la configuración de Exim
exim -bV

# Probar la autenticación de un buzón en Dovecot
doveadm auth test usuario@tudominio.com

# Cantidad de mensajes en cola
exim -bpc
Panel de administración

MariaDB

Configuración global de MariaDB desde el panel de administración, rendimiento, actualizaciones y copias por base.

MariaDB escucha solo en 127.0.0.1: las bases de datos no son accesibles desde internet. Las aplicaciones de las cuentas se conectan a localhost.

Para la gestión de bases y usuarios de cada cuenta, ver Bases de datos.

MySQL/MariaDB Configuration

La pantalla MySQL/MariaDB Configuration (my.cnf) ajusta los parámetros principales:

Parámetro Para qué sirve
max_connections Conexiones simultáneas máximas
innodb_buffer_pool_size Memoria para datos e índices InnoDB. Es el ajuste que más influye en el rendimiento
table_open_cache Tablas abiertas en caché
tmp_table_size Tamaño de las tablas temporales en memoria
Slow query log Registra consultas lentas para analizarlas

Los valores se guardan en /etc/my.cnf.d/99-iserverpanel.cnf. La configuración de solo acceso local está en /etc/my.cnf.d/99-iserverpanel-local.cnf.

Consejo

Como referencia, innodb_buffer_pool_size suele fijarse entre el 25 % y el 40 % de la RAM en un servidor de hosting que comparte memoria con PHP, correo y antispam.

Actualizaciones de MariaDB

La pantalla MySQL/MariaDB Configuration muestra la versión instalada de MariaDB y si hay una actualización. El panel la busca cada 12 horas; con Check now la buscas al momento.

Se ofrecen las actualizaciones de la misma serie (por ejemplo, de 10.11.15 a 10.11.18): traen correcciones de seguridad y de errores y no cambian el funcionamiento de las aplicaciones. Al pulsar Update MariaDB:

  1. Se guarda una copia completa de todas las bases en /var/backups/iserverpanel/mariadb (se conservan las 3 últimas).
  2. Se actualiza MariaDB, se reinicia y se ejecuta mariadb-upgrade.
  3. Se verifica que todas las bases sigan disponibles.

Los sitios dejan de acceder a las bases durante unos segundos mientras MariaDB se reinicia. Si MariaDB no arranca bien, el panel vuelve solo a la versión anterior. También puedes actualizar desde la terminal con iapanel mariadb-update.

Copia de una base

Desde la misma pantalla se puede generar un volcado de una base concreta. Para copias completas de una cuenta (archivos, bases, correo y DNS), usa los backups nativos.

Acceso remoto

ImnovaPanel no abre el puerto 3306. Si necesitas conectarte desde tu computadora, usa un túnel SSH:

bash
ssh -L 3306:127.0.0.1:3306 root@srv.tudominio.com

Luego conecta tu cliente de bases de datos a 127.0.0.1:3306.

Atención

No abras el puerto 3306 en el firewall. Desde la versión 0.71.294, iapanel doctor informa como fallo que ese puerto esté abierto al público.

Panel de administración

Seguridad

Firewall CSF, protección de acceso, doble factor, auditoría, análisis de malware y recomendaciones de endurecimiento.

ImnovaPanel reduce la superficie de ataque y aplica controles en varias capas, pero la seguridad del servidor también depende de mantenerlo actualizado, usar contraseñas fuertes y tener copias externas.

Acceso al panel

Roles separados

  • El portal de administración solo acepta al usuario root. Los revendedores entran por el mismo portal con permisos limitados. Ver Revendedores.
  • Los clientes solo acceden a su cuenta.
  • Cada acción sensible del backend vuelve a verificar el rol y la propiedad del recurso, aunque se llame a la API directamente.

Bloqueo por intentos fallidos

Parámetro Valor por defecto
Intentos permitidos 5
Ventana de conteo 30 minutos
Duración del bloqueo 15 minutos

El bloqueo se aplica a la combinación de portal + usuario + IP. Un atacante que falla con un usuario no bloquea a los demás usuarios legítimos, ni a ese mismo usuario desde otra IP.

La IP que se registra es la real del cliente, tomada del proxy Nginx local. El panel no confía en cabeceras X-Forwarded-For que envíe el navegador, así que no se pueden falsear para evitar el bloqueo.

Los valores se ajustan en Security & Access Control.

Doble factor (2FA)

Códigos TOTP para el administrador. Una vez activado, el segundo factor se exige en el inicio de sesión y también antes de abrir la terminal web. Ver Primer acceso.

Sesiones

  • Las sesiones del panel duran 12 horas.
  • La terminal web usa tickets de un solo uso que caducan a los 30 segundos. La sesión del panel nunca aparece en direcciones que puedan quedar en los logs del proxy.
  • phpMyAdmin y el webmail se abren con tokens temporales (10 minutos para phpMyAdmin) que se generan desde el panel.

Firewall (CSF/LFD)

El instalador configura ConfigServer Security & Firewall (CSF) con LFD, que bloquea IPs tras intentos fallidos en servicios como SSH o correo. Si CSF no se instala, el servidor queda protegido con firewalld.

Desde ConfigServer Security & Firewall (CSF) puedes:

  • permitir o bloquear IPs (listas allow y deny, con paginación),
  • abrir o cerrar puertos TCP.

Cada cambio guarda /etc/csf/csf.conf y recarga CSF con csf -r.

Nota

Abrir un puerto en el firewall no inicia ningún servicio. El puerto solo responde si hay un programa escuchando en él.

Los puertos que usa ImnovaPanel están en Puertos y firewall.

Auditoría

Cada acción administrativa queda registrada con:

  • fecha y hora en UTC,
  • usuario y rol,
  • IP real,
  • huella de la sesión,
  • usuario que actúa en nombre de otro (cuando el administrador entra al panel de un cliente),
  • recurso afectado (método y ruta),
  • acción y detalle.

Incluye inicios de sesión correctos y fallidos, activaciones de 2FA, sesiones de terminal, cambios de contraseña, accesos a phpMyAdmin y webmail, backups y restauraciones.

Nota

La pantalla Roles & Audit Logs está en desarrollo y no se muestra en esta versión. Mientras tanto, el registro puede consultarse por SSH:

node -e 'const d=require("/var/lib/iserverpanel/iserverpanel.local.json");for(const l of d.auditLogs.slice(0,30))console.log([l.timestamp||l.date,l.ip,l.user,l.role,l.action,l.resource].join(" | "))'

Análisis de malware (ClamAV)

ClamAV Malware Scanner analiza los archivos de las cuentas con clamscan. Solo el administrador puede iniciar análisis:

Alcance Ruta
Todas las cuentas /home
Una cuenta /home/usuario
Sitio web /home/usuario/public_html
Correo /home/usuario/mail
Ruta personalizada Siempre dentro de /home/usuario
  • Las firmas se actualizan automáticamente con clamav-freshclam. También se puede forzar la actualización desde la pantalla.
  • El historial guarda los últimos 200 análisis. Cada cliente ve solo los resultados de su cuenta.
Importante

El análisis informa las amenazas encontradas, pero todavía no tiene cuarentena ni borrado automático. Revisa y elimina los archivos infectados manualmente o pide al cliente que lo haga.

Agente privilegiado

imnovapanel-agent es un binario en Go que escucha solo en un socket Unix local (/run/imnovapanel/agent.sock), sin puertos de red. Verifica la identidad del servidor y la firma de la licencia de forma independiente y no acepta comandos arbitrarios. Ver Arquitectura.

Recomendaciones de endurecimiento

  • Activa el 2FA del administrador.
  • Usa claves SSH en lugar de contraseñas para el acceso por SSH. El inicio de sesión en el panel usa la contraseña de root del sistema, así que mantenla larga y única, aunque desactives la contraseña en SSH.
  • Mantén el panel actualizado con iapanel update, MariaDB desde MySQL/MariaDB Configuration y el sistema con dnf update.
  • Copia los backups fuera del servidor. Un backup en el mismo disco no protege ante una falla del servidor.
  • Revisa iapanel doctor periódicamente. Informa puertos inseguros abiertos, permisos incorrectos y servicios caídos.
  • No abras puertos internos (3306, 2088, 8080, 8443) en el firewall.
  • Protege el directorio de backups: contiene credenciales internas de las cuentas y no debe exponerse por FTP ni por web.
Panel de administración

Backups y restauración

Backups nativos de ImnovaPanel, política automática, backups iniciados por el cliente, descarga, verificación SHA-256 y restauración.

Formato nativo

ImnovaPanel genera backups de cuenta en su propio formato, usuario-AAAAMMDDhhmmss.ispbackup.tar.gz, acompañados de un archivo .sha256 para verificar su integridad.

Cada backup contiene:

Contenido Archivo dentro del backup
Metadatos de la cuenta, incluidas las bases y sus usuarios account.json
Archivos de la cuenta (/home/usuario) home.tar
Buzones de correo mail.tar
Bases de datos MariaDB mysql/<base>.sql
Zonas DNS dns/<dominio>.zone
Precaución

Los backups nativos contienen credenciales internas (por ejemplo, las contraseñas de los usuarios de bases de datos que el panel conoce) para poder restaurarlas. El directorio de backups debe pertenecer a root y nunca exponerse por FTP, por web ni en el administrador de archivos de un cliente.

Política automática

En Backup Configuration (Respaldos) el administrador define:

Opción Valor por defecto
Backups automáticos Desactivados
Frecuencia Diaria
Retención 7 días
Destino /backup
Contenido Archivos, bases de datos, correo y DNS

Los backups programados se ejecutan con un temporizador de systemd. Al aplicar la retención, el panel borra los backups vencidos junto con su .sha256.

Destinos: disco local o un montaje NFS. El destino SFTP remoto está en la hoja de ruta.

Importante

Activa los backups automáticos después de instalar: vienen desactivados. Y copia el directorio de backups a otro servidor o almacenamiento: un backup en el mismo disco no te protege si el servidor falla.

Backup manual de una cuenta

El administrador puede generar el backup de cualquier cuenta desde Backup Configuration o desde la lista de cuentas. El botón queda en Generando… hasta que aparece el archivo nuevo, y entonces muestra su nombre.

Desde SSH:

bash
/usr/local/sbin/iapanel-backup --scope=account --user=usuario

Backups del cliente

En Backup de cuenta, el cliente elige qué incluir: archivos, bases de datos, correo y configuración. La zona DNS se incluye siempre, para que la restauración deje el dominio funcionando.

El cliente puede descargar sus backups y consultar su suma SHA-256. Las descargas requieren una sesión válida: no existen enlaces públicos a los backups.

La restauración de backups está reservada al administrador.

Verificar un backup

bash
cd /backup
sha256sum -c usuario-20260929101500.ispbackup.tar.gz.sha256

Restaurar un backup nativo

En Transfer Tool & Restore, la lista de backups nativos aparece arriba, con buscador por usuario o archivo. Al restaurar, el panel:

  1. Verifica la suma SHA-256, si existe.
  2. Recrea la cuenta si fue eliminada.
  3. Restaura archivos, zonas DNS, bases de datos, usuarios de MariaDB con sus permisos y buzones.
  4. Regenera los vhosts y los pools PHP-FPM.

Si se restaura sobre una cuenta existente, el panel guarda antes una copia interna en /var/lib/iserverpanel/pre-native-restore/. Nada de esto queda visible en el administrador de archivos del cliente.

Cada restauración queda registrada en /var/log/iserverpanel-restore.log y en el registro de cuentas.

Nota

Las restauraciones no limpian las cachés de las aplicaciones (WordPress, PrestaShop, Symfony, Moodle, etc.). Si una aplicación muestra datos viejos después de restaurar, vacía su caché desde la propia aplicación.

Backups de cPanel

Los backups de cPanel (cpmove-usuario.tar.gz) se importan desde la misma pantalla y siempre crean una cuenta nueva. Ver Migraciones.

Panel de administración

Migraciones

Importar cuentas desde backups de cPanel y transferir cuentas entre servidores ImnovaPanel.

Desde cPanel

ImnovaPanel importa backups completos de cuentas cPanel (cpmove-usuario.tar.gz o el backup completo que genera cPanel).

Cómo importar

  1. En el servidor cPanel de origen, genera un backup completo de la cuenta.
  2. En ImnovaPanel, abre Transfer Tool & Restore en el panel de administración.
  3. Sube el archivo desde el navegador, o indica su ruta si ya está en el servidor dentro de /backup, /backups, /home, /root o /var/backups.
  4. Inicia la importación. El panel detecta el usuario y el dominio desde el propio backup.

El panel muestra dos etapas: la subida del archivo y el procesamiento en el servidor.

Qué se importa

  • Archivos del sitio (public_html y el resto del home).
  • Bases de datos MariaDB y sus datos.
  • Usuarios de base de datos y sus permisos, normalizados a localhost. No se importan privilegios globales (*.*).
  • Buzones de correo con sus mensajes.
  • Zonas DNS.

Política: siempre una cuenta nueva

Un backup de cPanel nunca se restaura sobre una cuenta existente. Así se evita mezclar archivos, bases, correos o prefijos de usuarios distintos. La restauración sobre una cuenta existente queda reservada a los backups nativos.

Después de importar

Importante

Las contraseñas de los buzones de correo no pueden trasladarse desde cPanel. Los buzones importados quedan marcados para restablecer su contraseña: hazlo desde Email Accounts antes de avisar al cliente.

  • Para abrir phpMyAdmin sin contraseña, la base debe tener su contraseña registrada en el panel. Si una base importada no la tiene, usa Resetear contraseña en Databases.
  • Revisa el sitio con una Temporary URL antes de cambiar el DNS.
  • Emite los certificados SSL cuando el DNS ya apunte al nuevo servidor.

Los temporales de la importación se procesan en /var/lib/iserverpanel/tmp/ y se eliminan al terminar. El registro completo queda en /var/log/iserverpanel-restore.log.

Entre servidores ImnovaPanel

Permite mover una cuenta de un servidor ImnovaPanel a otro sin pasar por el formato de cPanel. Se ejecuta desde el servidor de destino.

Requisitos

  • Ambos servidores con ImnovaPanel instalado.
  • Acceso SSH como root al servidor de origen, desde el servidor de destino.
  • El paquete sshpass en el destino (el instalador lo incluye).

Cómo transferir

  1. En el servidor de destino, abre Transfer Tool & Restore.
  2. Indica el host del servidor de origen, el puerto SSH, el usuario (root) y su contraseña.
  3. Pulsa Listar cuentas y elige la cuenta.
  4. Pulsa Transferir y restaurar.

El destino genera un backup nativo en el origen, lo copia por SCP y lo restaura localmente. La contraseña SSH se usa solo durante la operación: el panel no la guarda.

Modo streaming

Si el servidor de origen no tiene espacio para generar el backup, la transferencia pasa automáticamente a modo streaming: el destino trae por SSH los archivos, las bases, las zonas DNS y los metadatos, arma el backup localmente y lo restaura. En este modo el servidor de destino necesita espacio suficiente para recibir y restaurar la cuenta.

Nota

La transferencia se hace de a una cuenta y todavía no muestra el progreso archivo por archivo. La transferencia incremental y por lotes está en la hoja de ruta.

Otros paneles

No hay importadores para DirectAdmin, Plesk ni otros paneles. Para migrar desde ellos, crea la cuenta en ImnovaPanel, copia los archivos por FTP o SFTP e importa las bases de datos con phpMyAdmin.

Panel del cliente

Panel del cliente

Qué puede hacer cada cuenta desde su panel: dominios, archivos, FTP, tareas programadas, terminal, PHP, DNS, seguridad y backups.

Cada cuenta de hosting entra a su panel en https://srv.tudominio.com:2083/ (o /ipanel) con su usuario y contraseña. Solo ve y administra sus propios recursos. Las secciones disponibles dependen de la lista de características de su plan. Ver Cuentas y planes.

Dashboard

Muestra el uso de disco y ancho de banda, la cantidad de dominios, buzones y bases, y accesos rápidos a las secciones habilitadas: dominios, correo, bases de datos, archivos, zona DNS, terminal, backups, aplicaciones Node.js/Python y tareas cron.

Dominios y SSL

En Domains & SSL certificates el cliente administra su dominio principal, subdominios y alias, y emite certificados SSL. Ver Dominios y DNS y SSL.

Cuando la cuenta tiene un solo dominio, los formularios lo seleccionan automáticamente.

Zona DNS

DNS Zone Editor edita los registros de los dominios de la cuenta: A, AAAA, CNAME, MX, TXT y NS.

PHP

Versión de PHP y valores de php.ini (memory_limit, upload_max_filesize, post_max_size) por dominio. Ver PHP.

Administrador de archivos

File Manager trabaja sobre el directorio de la cuenta:

  • subir varios archivos y carpetas completas; los archivos grandes se envían en partes,
  • crear carpetas, renombrar y borrar,
  • extraer archivos comprimidos .zip, .rar, .tar, .tar.gz, .tar.bz2 y .tar.xz,
  • cambiar permisos (chmod),
  • Reparar permisos: restablece propietario y permisos de la cuenta si un sitio devuelve 403 Forbidden.

Los comprimidos se validan antes de extraerse para impedir rutas que salgan del destino.

Cuentas FTP

FTP Accounts crea usuarios FTP con el formato usuario@dominio.com, cada uno con su directorio de inicio:

Ruta indicada Acceso
/ Todo el home de la cuenta (/home/usuario)
/public_html Solo la raíz web
/public_html/carpeta Solo esa carpeta

Datos de conexión:

Parámetro Valor
Servidor srv.tudominio.com o el dominio de la cuenta
Puerto 21
Modo Pasivo (puertos 50000 a 50100)
Usuario usuario@dominio.com

El usuario y la contraseña principales de la cuenta también sirven para FTP y, si el plan lo permite, para SSH.

Tareas cron

Cron Jobs programa comandos que se ejecutan con el usuario de la cuenta. Las rutas deben estar dentro del directorio de la cuenta.

text
*/15 * * * *   php /home/usuario/public_html/cron.php

Terminal

Terminal abre una consola real con el usuario de la cuenta, dentro de su directorio y sin privilegios de administrador. Cada sesión queda registrada en la auditoría.

Seguridad de la cuenta

En Account Security el cliente cambia su contraseña principal. Debe indicar la contraseña actual y una nueva de al menos 8 caracteres. El cambio se aplica al usuario Linux, así que afecta al panel, al FTP principal y al SSH.

No cambia las contraseñas de los buzones, de las cuentas FTP adicionales ni de los usuarios de MariaDB: cada una se administra en su sección.

Análisis de malware

Malware Scanner muestra los resultados de los análisis que el administrador ejecutó sobre la cuenta. El cliente no puede iniciar análisis.

Backups

Backup de cuenta genera un backup eligiendo el contenido y permite descargar los backups disponibles de la cuenta. Ver Backups.

Webmail y phpMyAdmin

  • Webmail (Roundcube) abre el correo de un buzón sin pedir su contraseña. Ver Correo.
  • phpMyAdmin DB abre la base elegida con un token temporal. Ver Bases de datos.
Panel del cliente

Correo

Buzones, cuotas, reenviadores, webmail, configuración de clientes de correo y entregabilidad (SPF, DKIM, DMARC).

Buzones

En Email Accounts (Cuentas de correo) el cliente crea buzones para sus dominios, con contraseña y cuota. Desde la misma pantalla:

  • Modificar: cambia la contraseña y la cuota.
  • Eliminar: borra el buzón y su contenido.
  • La columna de estado muestra OK o Excedido según el uso real, medido cada 2 minutos.

Un buzón que supera su cuota deja de recibir correo y no puede enviar hasta que libere espacio. Ver Correo del servidor.

Reenviadores

Un reenviador envía una copia de los mensajes de una dirección a otra, por ejemplo contacto@miempresa.com → dueno@gmail.com.

Al crearlo se elige si se conserva una copia en el buzón local:

Caso Comportamiento
La dirección tiene buzón y se conserva copia El mensaje se entrega en el buzón y se reenvía
La dirección tiene buzón y no se conserva copia Solo se reenvía
La dirección no tiene buzón (alias) Solo se reenvía

Por defecto, si la dirección tiene buzón, se conserva la copia.

Webmail

Roundcube está disponible en https://srv.tudominio.com:2096/roundcube/ y en /webmail.

Desde el panel, el botón de webmail de cada buzón abre Roundcube sin pedir la contraseña, con un token temporal. El cliente solo puede abrir los buzones de su cuenta.

Nota

El acceso sin contraseña necesita que el panel conozca la contraseña del buzón. Los buzones creados en versiones antiguas o importados desde cPanel deben tener su contraseña restablecida una vez desde Modificar.

Configurar un cliente de correo

Para Outlook, Thunderbird, Apple Mail o el correo del móvil:

Parámetro Valor
Usuario Dirección completa, por ejemplo info@miempresa.com
Servidor entrante y saliente mail.miempresa.com
IMAP Puerto 993, SSL/TLS
POP3 Puerto 995, SSL/TLS
SMTP Puerto 465 con SSL/TLS, o 587 con STARTTLS
Autenticación SMTP Sí, con el mismo usuario y contraseña
Consejo

Si mail.miempresa.com todavía no tiene certificado propio, usa el hostname del servidor (srv.tudominio.com) como servidor entrante y saliente para evitar advertencias de certificado.

Entregabilidad

Email Deliverability revisa los registros que deciden si Gmail, Outlook y otros proveedores aceptan el correo de un dominio:

Registro Qué verifica
MX Qué servidor recibe el correo del dominio
SPF Qué servidores pueden enviar en nombre del dominio
DKIM La firma criptográfica de los mensajes
DMARC Qué hacer con los mensajes que fallan SPF o DKIM
rDNS / PTR Que la IP del servidor resuelva al hostname

El cliente ve solo sus dominios, alias y subdominios.

Reparar DNS

Reparar DNS crea o corrige en la zona del dominio los registros que administra el panel: mail (A), MX, SPF, DMARC (_dmarc) y DKIM (default._domainkey). Si falta la clave DKIM, la genera. Antes de aplicar, valida la zona y después recarga BIND, Exim y OpenDKIM.

Importante
  • Si tu dominio usa un DNS externo (Cloudflare, el del registrador), la reparación cambia la zona del servidor pero no la del proveedor externo. Copia los registros al proveedor.
  • El PTR no se configura en el dominio: se pide al proveedor del VPS.
  • Ningún panel puede garantizar que el correo llegue a la bandeja de entrada. También influyen la reputación de la IP, el contenido, el volumen de envío y las políticas del receptor.

Diagnóstico de un rechazo

Si Gmail rechaza o marca como spam un mensaje, revisa sus encabezados originales (Mostrar original en Gmail). Busca spf=, dkim= y dmarc=: los tres deben decir pass.

Panel del cliente

Bases de datos

Crear bases MariaDB, usuarios y permisos, restablecer contraseñas y abrir phpMyAdmin sin contraseña.

Crear una base

En Databases (MariaDB) el cliente crea bases de datos. Los nombres llevan como prefijo el usuario de la cuenta (usuario_nombre), así que nunca chocan con los de otra cuenta.

Al crear una base, el panel puede generar su usuario de MariaDB con una contraseña segura y guardarla para el acceso a phpMyAdmin.

Usuarios y permisos

  • Crear usuario: agrega un usuario de MariaDB a la cuenta.
  • Vincular usuario a una base: otorga ALL PRIVILEGES sobre esa base.
  • Resetear contraseña: cambia la contraseña del usuario de una base y la registra en el panel.

Al eliminar una base, su usuario también se elimina si ninguna otra base lo usa.

Datos de conexión para las aplicaciones:

Parámetro Valor
Servidor localhost
Puerto 3306
Base usuario_nombre
Usuario usuario_nombre
Nota

MariaDB solo acepta conexiones locales. Para conectarte desde tu computadora, usa un túnel SSH. Ver MariaDB.

phpMyAdmin

El botón phpMyAdmin de cada base abre phpMyAdmin ya dentro de esa base, sin formulario de inicio de sesión. El acceso usa un token de un solo uso que caduca a los 10 minutos.

Para que funcione, el panel debe conocer la contraseña del usuario de la base. Si una base fue importada o creada fuera del panel, usa Resetear contraseña una vez para habilitar el acceso.

Importar y exportar

  • Importar: desde phpMyAdmin (pestaña Importar) para archivos pequeños y medianos. Para volcados grandes, súbelos con el administrador de archivos o por FTP e impórtalos por terminal:
bash
mysql -u usuario_nombre -p usuario_nombre < volcado.sql
  • Exportar: desde phpMyAdmin (pestaña Exportar), o incluyendo las bases en un backup de cuenta.
Panel del cliente

Aplicaciones Node.js y Python

Publicar aplicaciones Node.js, Python y Vite detrás de HTTPS, creándolas a mano o desplegándolas desde un archivo ZIP, RAR o TAR.

ImnovaPanel ejecuta aplicaciones Node.js y Python como servicios administrados, cada una con su puerto interno, su log y su proxy inverso desde el dominio elegido. Se administran en Apps (NodeJS/Python).

Desplegar desde un archivo comprimido

Es la forma más rápida de publicar un proyecto.

1. Seleccionar

Pulsa Subir ZIP/RAR y elige el dominio o subdominio donde se publicará la app. Si la cuenta tiene un solo dominio, se selecciona automáticamente.

2. Analizar

Sube el comprimido. El panel lo analiza sin desplegarlo y detecta:

  • el tipo de proyecto (Node.js o Python),
  • la carpeta raíz real, aunque el comprimido tenga un nivel de carpeta extra,
  • el archivo de inicio,
  • los archivos de dependencias.
Tipo Señales que busca
Node.js package.json, server.js, app.js, index.js, src/server.js, dist/server.js
Python requirements.txt, pyproject.toml, Pipfile, app.py, wsgi.py, main.py, passenger_wsgi.py

Formatos admitidos: .zip, .rar, .tar, .tar.gz, .tgz, .tar.bz2, .tbz2, .tar.xz y .txz.

3. Configurar

El panel propone y te deja ajustar:

  • nombre de la app,
  • versión del runtime, entre las instaladas en el servidor,
  • modo (production por defecto),
  • carpeta de destino, dentro de /home/usuario/apps/,
  • archivo de log, en /home/usuario/logs/,
  • un puerto interno libre,
  • variables de entorno,
  • si se instalan las dependencias.

Si la carpeta de destino ya tiene archivos, el panel lo avisa. Puedes elegir otra carpeta o marcar Sobrescribir destino: reemplaza la carpeta y también la app que ya estuviera registrada en ese dominio.

4. Publicar

El panel extrae el proyecto, asigna el propietario, instala las dependencias (npm install o pip), crea el servicio de systemd y el proxy inverso, y registra la app. Al terminar comprueba el estado real del servicio: si la app no arranca, muestra el error en lugar de indicar éxito.

Proyectos Vite y React

Si el proyecto es un frontend compilable (Vite, React, TypeScript), el panel instala todas las dependencias, ejecuta npm run build y genera un servidor estático interno que publica la carpeta dist.

Antes de compilar repara los permisos de ejecución de node_modules/.bin, para evitar errores como tsc: Permission denied.

Crear una app a mano

También puedes crear la app sin comprimido, indicando runtime, versión, dominio, carpeta, archivo de inicio, modo, variables, log y puerto. Es útil cuando subes el código por FTP o Git por tu cuenta.

Administrar una app

Para cada app puedes iniciar, detener, reiniciar, ver su log y eliminarla.

Al eliminar una app, el panel detiene y desactiva su servicio, quita el proxy y borra su carpeta, siempre que esté dentro de /home/usuario/apps/.

Buenas prácticas

  • La app debe escuchar en el puerto que asigna el panel, leyéndolo de la variable de entorno PORT, y en 127.0.0.1.
  • Guarda las credenciales en variables de entorno, no en el código.
  • Si la app usa base de datos, créala antes en Bases de datos y pasa los datos por variables.
  • Emite el certificado SSL del dominio para publicar la app por HTTPS.
Nota

El análisis automático prepara la mayor parte del despliegue, pero no todos los proyectos funcionan sin ajustes. Una app puede necesitar credenciales, una base de datos, servicios externos o configuración propia de su framework.

Versiones de Python

Las versiones de Python disponibles para las apps dependen de las que estén instaladas en el servidor. El administrador puede instalar otras desde EasyApache 4. En AlmaLinux 9 suelen estar disponibles Python 3.9, 3.11 y 3.12; Python 3.10 no está en los repositorios oficiales.

Soporte de RAR

Para extraer archivos .rar el servidor usa la primera herramienta disponible entre unrar, bsdtar, 7z y unar. Si no hay ninguna, el panel intenta instalar una automáticamente. Si el proveedor bloquea los repositorios, muestra un error indicando que falta el soporte RAR.

Operación

Actualizaciones

Cómo actualizar ImnovaPanel con iapanel update, qué hace cada paso, cómo funciona el rollback automático y cómo volver a una versión anterior.

ImnovaPanel se actualiza con la CLI iapanel. Cada actualización guarda antes un punto de restauración y, si algo falla, vuelve automáticamente a la versión anterior.

Comprobar si hay una actualización

bash
iapanel update --check

Muestra la versión instalada, la última disponible, el canal y el paquete:

text
Installed version: 0.71.313
Last available: 0.71.314
Channel: stable
Bundle: https://imnovapanel.net/downloads/imnovapanel-0.71.314.tar.gz
Update available.

Actualizar

bash
iapanel update

Para ver el detalle de cada paso, agrega --verbose. Para reinstalar la misma versión (por ejemplo, para reparar archivos), usa --force.

Qué hace la actualización

Progreso Paso
5 % Crea un punto de restauración en /var/backups/iserverpanel/updates/ con la aplicación, la configuración, los servicios y los vhosts del panel
20 % Descarga el paquete de la nueva versión
35 % Verifica la suma SHA-256 del paquete contra el manifiesto. Si no coincide, se detiene
45 % Instala los archivos nuevos. No toca los datos (backend/data, backend/runtime) ni la configuración (.env)
60 % Instala las dependencias
70 % Compila la interfaz
82 % Valida los servicios, nginx -t y httpd -t
90 % Aplica las reparaciones automáticas de configuración (self-heal)
96 % Reinicia el panel, Apache y Nginx
100 % Muestra la nueva versión

Durante la actualización, los sitios, el correo y las bases de datos siguen funcionando. El reinicio final de Nginx y Apache produce un corte de pocos segundos.

Nota

Las cuentas, dominios, buzones, bases y backups no se modifican durante una actualización. Solo se reemplaza el software del panel.

Rollback automático

Si cualquier paso falla, iapanel update muestra el error y restaura automáticamente el punto de restauración:

text
Update failed: …
Attempting automatic rollback...
Automatic rollback completed.

El panel queda en la versión anterior, funcionando. Revisa el error con iapanel update --verbose o consulta Solución de problemas.

Volver a la versión anterior manualmente

Si una actualización terminó bien pero prefieres volver atrás:

bash
iapanel update --rollback

Restaura el último punto de restauración. Para usar uno concreto:

bash
ls /var/backups/iserverpanel/updates/
iapanel update --rollback --file=/var/backups/iserverpanel/updates/preupdate-0.71.293-20260929-120000.tar.gz

Canales

Canal Para qué
stable Versiones publicadas para todos los servidores. Es el canal por defecto
staging Versiones candidatas, para probar en un servidor de pruebas antes de publicarlas

Para actualizar un servidor de pruebas desde otro manifiesto:

bash
iapanel update --manifest=https://imnovapanel.net/downloads/staging/version.json --force
Atención

No uses el canal de pruebas en servidores de producción.

Buenas prácticas

  • Antes de actualizar un servidor con muchos clientes, verifica que tengas backups recientes fuera del servidor.
  • Actualiza en horarios de poco tráfico: el reinicio de Nginx y Apache corta las conexiones durante unos segundos.
  • Después de actualizar, ejecuta iapanel doctor y confirma FAIL=0.
  • Lee el changelog de la versión para conocer los cambios.

Verificación de los paquetes

Cada versión se publica con un manifiesto (version.json) que incluye la suma SHA-256 del paquete, el commit de origen y la suma del agente privilegiado. Desde la versión 0.71.294, cada paquete incluye además un RELEASE-MANIFEST.json con la suma de cada archivo.

Operación

CLI iapanel

Referencia completa de la herramienta de línea de comandos iapanel para diagnóstico, actualizaciones, licencias, SSL y acceso de emergencia.

iapanel es la herramienta de administración de ImnovaPanel por SSH. Está instalada en /usr/local/sbin/iapanel y todos los comandos, salvo version y help, requieren root.

Resumen

Comando Para qué sirve
iapanel doctor Diagnóstico completo del servidor
iapanel status Estado rápido de servicios y puertos
iapanel restart Reinicia el panel aplicando reparaciones
iapanel update Actualiza, comprueba o revierte versiones
iapanel license-check Activa o valida la licencia
iapanel login Genera un enlace de acceso de un solo uso
iapanel ssl-hostname Repara el certificado del hostname
iapanel mariadb-update Actualiza MariaDB con copia previa y verificación
iapanel system-repair Aplica los ajustes del sistema (firewall, certificados, correo, cuotas)
iapanel harden-ports Cierra puertos inseguros expuestos
iapanel agent Consulta el agente privilegiado
iapanel optimize Aplica el perfil de rendimiento
iapanel version Muestra la versión instalada

iapanel doctor

bash
iapanel doctor
iapanel doctor --json

Revisa el servidor y clasifica cada comprobación como OK, WARN o FAIL:

  • servicios del panel, web, correo, DNS, base de datos, firewall y agente,
  • configuración de Nginx, Apache y BIND,
  • respuesta del panel en el puerto 2087,
  • permisos de /opt/iserverpanel, de server.js y del archivo de configuración,
  • puertos del panel en firewalld y CSF,
  • puertos inseguros expuestos (2082, 2086 y 3306),
  • licencia, API v1, backups y espacio disponible,
  • memoria de intercambio (swap/ZRAM).

La última línea resume el resultado, por ejemplo OK=59 WARN=3 FAIL=0. FAIL indica algo que hay que corregir; WARN es una recomendación. --json devuelve el resultado en JSON para monitoreo.

iapanel status

bash
iapanel status

Muestra el estado de iserverpanel, nginx y httpd, y si escuchan los puertos del panel.

iapanel restart

bash
iapanel restart

Reinicia el panel y aplica las reparaciones automáticas de configuración: DNS del panel, phpMyAdmin, Dovecot, Roundcube, Exim, permisos, agente, FTP, vhosts, SSL del hostname, temporizador de licencia y perfil de rendimiento. Después reinicia el panel, Apache y Nginx, y comprueba que respondan.

Es el primer paso recomendado cuando algo del panel no funciona como debería.

iapanel update

bash
iapanel update --check        # comprobar si hay versión nueva
iapanel update                # actualizar
iapanel update --verbose      # actualizar mostrando cada paso
iapanel update --force        # reinstalar la versión actual
iapanel update --rollback     # volver al último punto de restauración
iapanel update --rollback --file=RUTA
iapanel update --manifest=URL # usar otro manifiesto (servidores de prueba)

Ver Actualizaciones.

iapanel license-check

bash
iapanel license-check                      # validar ahora (por IP)
iapanel license-check --license=TU-CLAVE   # validar indicando la clave
iapanel license-check --no-activate        # solo consultar
iapanel license-check --quiet              # sin salida

Ver Licencias.

iapanel login

bash
iapanel login
iapanel login --ttl=300
iapanel login --host=srv.tudominio.com --port=2087

Genera un enlace para entrar al panel de administración como root sin contraseña. El enlace sirve una sola vez y caduca a los 120 segundos (o a los segundos indicados en --ttl). Es útil si olvidaste la contraseña o perdiste el acceso al 2FA.

Precaución

El enlace da acceso total al panel. No lo compartas ni lo pegues en chats o tickets.

iapanel ssl-hostname

bash
iapanel ssl-hostname

Repara la configuración de Nginx del panel e intenta emitir o aplicar el certificado del hostname. Si no puede, explica la causa (normalmente, que el registro A no apunta al servidor) e indica cómo usar el acceso de rescate por túnel SSH.

iapanel mariadb-update

bash
iapanel mariadb-update

Instala la última actualización de MariaDB de la serie instalada (por ejemplo, de 10.11.15 a 10.11.18). Antes guarda una copia completa de todas las bases en /var/backups/iserverpanel/mariadb; después reinicia MariaDB, ejecuta mariadb-upgrade y verifica que todas las bases sigan disponibles. Si MariaDB no arranca bien, vuelve a la versión anterior. Si no hay actualizaciones, lo informa y no cambia nada. Es lo mismo que el botón Update MariaDB del panel. Ver Actualizaciones de MariaDB.

iapanel system-repair

bash
iapanel system-repair

Revisa y corrige los ajustes del sistema que usa el panel: que el firewall (lfd) no alerte por los servicios de hosting y mande las alertas al correo de contacto del servidor, la renovación automática de los certificados, que el hostname se mantenga al reiniciar en servidores en la nube, el permiso de SELinux para que PHP envíe correo, los rebotes congelados del correo del sistema, los certificados de dominios que ya no están en el servidor, las cuotas de disco y el certificado del hostname. Cada paso comprueba antes de cambiar algo, así que se puede ejecutar las veces que haga falta. El instalador y las actualizaciones lo ejecutan solos.

iapanel harden-ports

bash
iapanel harden-ports

Cierra en firewalld y CSF los puertos 2082, 2086 y 3306 si estuvieran abiertos al público, y deja el acceso HTTP de rescate escuchando solo en 127.0.0.1. El panel lo ejecuta automáticamente una vez después de actualizar a la 0.71.294.

iapanel agent

bash
iapanel agent status
iapanel agent identity
iapanel agent license
iapanel agent capabilities

Consulta el agente privilegiado: estado, identidad del servidor (un hash, nunca el identificador real), verificación independiente de la licencia y capacidades disponibles.

iapanel optimize

bash
iapanel optimize

Aplica el perfil de rendimiento de PHP-FPM y SpamAssassin según los recursos del servidor.

iapanel version

bash
iapanel version

Muestra la versión instalada, por ejemplo 0.71.294.

Otros comandos del sistema

Comando Uso
/usr/local/sbin/iapanel-backup --scope=account --user=USUARIO Backup nativo de una cuenta
systemctl status iserverpanel Estado del servicio del panel
journalctl -u iserverpanel -n 100 Últimas líneas del log del panel
systemctl status imnovapanel-agent Estado del agente privilegiado
Operación

Puertos y firewall

Puertos públicos e internos de ImnovaPanel, configuración del firewall y acceso de rescate por túnel SSH.

Puertos públicos

Estos puertos deben estar abiertos en el firewall del servidor y en el del proveedor:

Puerto Protocolo Servicio
22 TCP SSH
20, 21 TCP FTP (control y datos)
50000–50100 TCP FTP pasivo
25 TCP SMTP (recepción entre servidores)
465 TCP SMTP con SSL/TLS (envío de clientes)
587 TCP SMTP con STARTTLS (envío de clientes)
110 / 995 TCP POP3 / POP3S
143 / 993 TCP IMAP / IMAPS
53 TCP y UDP DNS (BIND)
80 / 443 TCP Sitios web (Nginx)
2083 TCP Panel del cliente (HTTPS)
2087 TCP Panel de administración (HTTPS)
2096 TCP Webmail (HTTPS)

Puertos internos

Escuchan solo en 127.0.0.1 y no deben abrirse en el firewall:

Puerto Servicio
2088 API interna del panel (Node.js)
8080 / 8443 Apache (backend de Nginx)
3306 MariaDB
783 SpamAssassin (spamd)
2082 / 2086 Acceso HTTP de rescate del panel
Puertos de las apps Aplicaciones Node.js y Python

El agente privilegiado no usa puertos: se comunica por el socket Unix /run/imnovapanel/agent.sock.

Importante

Hasta la versión 0.71.293, los puertos 2082 y 2086 servían el panel sin cifrar y el instalador abría el 3306 en CSF. Desde la 0.71.294 quedan cerrados, también en los servidores ya instalados que se actualizan. iapanel doctor informa como fallo si alguno sigue abierto.

Firewall

ImnovaPanel configura firewalld y, si se instaló, CSF/LFD. Cuando CSF está activo, es el que administra las reglas.

  • Para abrir o cerrar puertos, usa ConfigServer Security & Firewall (CSF) en el panel. Ver Seguridad.
  • El panel guarda /etc/csf/csf.conf y recarga CSF automáticamente.

Para comprobar los puertos desde otra máquina:

bash
nmap -Pn -p 21,22,25,53,80,443,465,587,993,995,2082,2083,2086,2087,2096,3306 203.0.113.10

2082, 2086 y 3306 deben aparecer como closed o filtered.

Consejo

Revisa también el firewall del proveedor (grupos de seguridad o firewall de red del panel del VPS). Si bloquea un puerto, el servicio no será accesible aunque el servidor lo tenga abierto.

Acceso de rescate por túnel SSH

Si el certificado del panel falla y no puedes entrar por HTTPS, el panel sigue disponible por HTTP solo desde el propio servidor. Para usarlo desde tu computadora, abre un túnel SSH:

bash
ssh -L 2086:127.0.0.1:2086 root@203.0.113.10

Mientras la sesión SSH esté abierta, entra en tu navegador a http://127.0.0.1:2086/. Usa 2082 en lugar de 2086 para el panel del cliente.

El tráfico viaja cifrado dentro del túnel SSH. Cuando termines, repara el certificado con iapanel ssl-hostname.

Operación

Arquitectura

Componentes de ImnovaPanel, rutas de archivos, servicios y funcionamiento del agente privilegiado.

Componentes

text
                 Navegador
                     │ HTTPS (2087 · 2083 · 2096)
                     ▼
                  Nginx ───────────────▶ Sitios (80/443) ──▶ Apache ──▶ PHP-FPM
                     │                                    └──▶ Apps Node.js / Python
                     ▼
        Backend del panel (Node.js, 127.0.0.1:2088)
                     │                  │
                     │                  └── socket Unix ──▶ imnovapanel-agent (Go)
                     ▼
   BIND · Exim · Dovecot · MariaDB · vsftpd · CSF · Certbot · systemd
Componente Función
Interfaz Aplicación web (React), servida por Nginx desde /opt/iserverpanel/dist
Backend Servicio iserverpanel (Node.js). Orquesta las operaciones sobre el sistema
Agente privilegiado Servicio imnovapanel-agent (Go). Frontera privilegiada con el sistema operativo
CLI iapanel, para diagnóstico, actualizaciones y licencias
Servicios de hosting Nginx, Apache, PHP-FPM, BIND, Exim, Dovecot, OpenDKIM, SpamAssassin, MariaDB, vsftpd, CSF/LFD, ClamAV

Rutas importantes

Ruta Contenido
/opt/iserverpanel/ Aplicación del panel
/etc/iserverpanel/iserverpanel.env Configuración principal (permisos 600)
/etc/iserverpanel/license-public.pem Copia de la clave pública de licencias, usada por el agente privilegiado
/var/lib/iserverpanel/iserverpanel.local.json Base de datos del panel: cuentas, dominios, buzones, auditoría
/var/lib/iserverpanel/ Datos, temporales de restauración y tokens de acceso
/var/log/iserverpanel/ Logs del panel
/backup/ Backups nativos
/var/backups/iserverpanel/updates/ Puntos de restauración de las actualizaciones
/home/<usuario>/ Archivos de cada cuenta (public_html, apps, logs)
/var/vmail/<dominio>/ Buzones de correo
/var/named/ Zonas DNS
/etc/exim/dkim/ Claves DKIM
/usr/local/sbin/iapanel CLI
/usr/local/libexec/imnovapanel-agent Agente privilegiado
Atención

No edites a mano iserverpanel.local.json con el panel en marcha: el servicio lo reescribe y tus cambios pueden perderse o dañar el archivo. Si es imprescindible, detén iserverpanel y haz una copia antes.

Agente privilegiado

imnovapanel-agent es la frontera entre la aplicación web y el sistema operativo. Se incorpora de forma gradual para que las instalaciones existentes sigan funcionando mientras las operaciones privilegiadas salen del backend.

Característica Detalle
Binario /usr/local/libexec/imnovapanel-agent
Servicio imnovapanel-agent.service (systemd endurecido)
Comunicación HTTP/JSON sobre el socket Unix /run/imnovapanel/agent.sock
Permisos del socket 0660, root:imnovapanel
Red Ninguna. No abre puertos TCP

Funciones actuales:

  • GET /v1/health: estado del agente.
  • GET /v1/identity: identidad del servidor, como hash SHA-256 del identificador de la máquina.
  • GET /v1/license: verificación independiente de la firma Ed25519 de la licencia.
  • GET /v1/capabilities: capacidades disponibles.

Propiedades de seguridad:

  • Verifica las credenciales del proceso que se conecta: solo acepta a root o al grupo imnovapanel.
  • No tiene ningún método para ejecutar comandos arbitrarios.
  • Limita el tamaño de las peticiones y usa tiempos de espera cortos.
  • Nunca devuelve la clave de licencia, las firmas, las claves públicas ni el identificador real de la máquina.
Nota

En esta versión el agente es de solo lectura. La hoja de ruta mueve progresivamente las operaciones privilegiadas (cuentas, DNS, web, correo, servicios) a operaciones tipadas del agente, para que el backend pueda ejecutarse sin privilegios de root.

Política IPv4-first

ImnovaPanel deshabilita IPv6 en el sistema y en los servicios para simplificar la configuración y el firewall:

  • sysctl persistente en /etc/sysctl.d/99-iserverpanel-ipv4-first.conf,
  • CSF con IPV6 = "0",
  • BIND sin escucha IPv6,
  • MariaDB en 127.0.0.1,
  • SSH, Dovecot, Exim y vsftpd en IPv4.
Operación

Solución de problemas

Diagnóstico de los problemas más comunes del panel, los sitios, SSL, correo, FTP y actualizaciones.

Primer paso: diagnóstico

Ante cualquier problema, empieza por:

bash
iapanel doctor

Corrige primero las líneas FAIL. Si el problema es del propio panel, prueba después:

bash
iapanel restart

El panel no carga

Síntoma Causa probable Solución
El navegador no conecta con :2087 Servicio caído o puerto bloqueado iapanel status; revisar el firewall del proveedor
Página "ImnovaPanel could not start the frontend" Falta la interfaz compilada iapanel update --force
Error de certificado El hostname no tiene SSL válido iapanel ssl-hostname; mientras tanto, túnel SSH
Mensaje de licencia bloqueada Licencia inválida, vencida o sin validar iapanel license-check. Ver Licencias

Logs del servicio:

bash
journalctl -u iserverpanel -n 100 --no-pager

No puedo iniciar sesión

  • "Invalid credentials" en el portal de administración: solo entra root. Comprueba la contraseña de root con una sesión SSH.
  • "Account/IP temporarily blocked": hubo 5 intentos fallidos en 30 minutos. Espera 15 minutos o entra con iapanel login.
  • Perdí el 2FA: entra con iapanel login y vuelve a configurarlo en Security & Access Control.
  • Un cliente no puede entrar: comprueba que la cuenta no esté suspendida y restablece su contraseña desde List Accounts.

Un sitio no funciona

Síntoma Causa probable Solución
403 Forbidden Permisos o propietario incorrectos Reparar permisos en el administrador de archivos
503 Service Unavailable PHP-FPM caído, a veces por un pool de una cuenta eliminada Reiniciar PHP-FPM desde OS Services. Si no arranca, php-fpm -t indica el pool con error
Muestra una página neutral de ImnovaPanel El dominio apunta al servidor pero no existe en ninguna cuenta Crear el dominio en la cuenta correspondiente
Muestra una versión vieja de PHP El dominio usa otra versión Cambiarla en la sección PHP
upload_max_filesize no cambia Valores viejos en .user.ini Volver a aplicar la configuración de PHP desde el panel

SSL

  • "El DNS no apunta al servidor": el registro A del dominio debe resolver a la IP del servidor. Compruébalo con dig +short dominio.com.
  • La emisión falla con 404 en /.well-known/acme-challenge/: ejecuta iapanel restart para regenerar las rutas ACME de Nginx y vuelve a intentarlo.
  • Una app SMTP da CERTIFICATE_VERIFY_FAILED: configura la app con mail.dominio o el hostname, nunca con la IP. Ver SSL.

Correo

Síntoma Qué revisar
No llegan correos Registro MX, estado de Exim, cuota del buzón y de la cuenta
Gmail marca como spam SPF, DKIM, DMARC y PTR. Usa Email Deliverability y Reparar DNS
No sale correo Que el proveedor permita el puerto 25 saliente; límite de envíos por hora; cola (exim -bpc)
Roundcube muestra un error al entrar doveadm auth test usuario@dominio; reinicia Dovecot
El webmail pide contraseña El buzón no tiene la contraseña registrada: restablécela desde Modificar
550 mailbox quota exceeded El buzón superó su cuota

FTP

  • "User unknown" con usuario@dominio: vuelve a guardar la contraseña de la cuenta FTP desde el panel. Así se sincroniza la base de usuarios de vsftpd.
  • Conecta pero no lista archivos: el cliente FTP debe usar modo pasivo y el firewall debe permitir los puertos 50000–50100.

Aplicaciones Node.js / Python

  • La app queda detenida después de desplegar: el panel muestra el error de systemd. Revisa el log de la app en /home/usuario/logs/.
  • status=200/CHDIR: la carpeta de la app no pertenece a la cuenta. Vuelve a desplegar: el panel repara apps/ y logs/.
  • Permission denied en node_modules/.bin: redesplegar desde el panel repara los permisos antes de compilar.
  • Error de RAR: el servidor no tiene herramientas RAR y no pudo instalarlas. Instala libarchive o unrar.

Actualizaciones

  • La actualización falló: el rollback automático deja la versión anterior funcionando. Repite con iapanel update --verbose para ver el paso exacto.
  • Quiero volver atrás: iapanel update --rollback.
  • "SHA256 invalid": el paquete descargado está incompleto o alterado. Reintenta más tarde; no fuerces la instalación.

Pedir soporte

Incluye en tu consulta:

  1. La versión: iapanel version.
  2. El resultado de iapanel doctor.
  3. El mensaje de error exacto y los pasos para reproducirlo.
  4. Las últimas líneas de journalctl -u iserverpanel -n 100 --no-pager.
Precaución

No envíes contraseñas, claves de licencia completas, enlaces de iapanel login ni el contenido de iserverpanel.env.

Integraciones

API v1

API REST para automatizar ImnovaPanel desde un sistema de facturación o portal propio: cuentas, planes, correo y reenviadores.

La API v1 permite usar ImnovaPanel como motor técnico de hosting desde un sistema externo, por ejemplo WHMCS o un portal propio. El sistema externo gestiona clientes, facturación y tickets; ImnovaPanel ejecuta las acciones reales en el servidor. No se comparten bases de datos.

Configuración

  1. En el panel de administración, abre API Tokens & Webhooks (pantalla API Access).
  2. En Authorized IPs, escribe la IP pública del sistema que llamará a la API. Puedes dejarlo vacío mientras pruebas.
  3. Define Requests per minute.
  4. Pulsa Generate new token y copia el token. Solo se muestra completo una vez.
  5. Pulsa Test API para confirmar que funciona.

La configuración se guarda en /etc/iserverpanel/iserverpanel.env:

bash
IMNOVAPANEL_API_V1_TOKEN="TOKEN_GENERADO"
IMNOVAPANEL_API_V1_ALLOWED_IPS="203.0.113.50"
IMNOVAPANEL_API_V1_RATE_LIMIT_PER_MINUTE="120"

El token debe tener al menos 20 caracteres. iapanel doctor indica si la API tiene token, si la restricción por IP está activa y si responde localmente.

Seguridad

  • Todas las rutas están bajo https://srv.tudominio.com:2087/api/v1/.
  • Todas requieren la cabecera Authorization: Bearer TOKEN.
  • Hay un límite de peticiones por minuto por IP.
  • Se puede restringir el acceso a IPs concretas.
  • La API nunca devuelve contraseñas guardadas ni hashes. Si genera una contraseña, la devuelve una sola vez en generatedPassword.
Atención

El token da control sobre las cuentas del servidor. Guárdalo en tu sistema de facturación como un secreto, restringe las IPs autorizadas en producción y no lo incluyas en código fuente ni en logs.

Formato de las respuestas

Éxito:

json
{ "success": true }

Error:

json
{
  "success": false,
  "error": { "code": "invalid_domain", "message": "Dominio inválido." }
}

Endpoints

Método Ruta Acción
GET /api/v1/health Estado del servidor y de los servicios principales
GET /api/v1/plans Planes disponibles
GET /api/v1/accounts Listar cuentas
POST /api/v1/accounts Crear cuenta
POST /api/v1/accounts/{usuario}/suspend Suspender cuenta
POST /api/v1/accounts/{usuario}/unsuspend Reactivar cuenta
DELETE /api/v1/accounts/{usuario} Eliminar cuenta
GET /api/v1/accounts/{usuario}/usage Uso de disco y ancho de banda
GET /api/v1/accounts/{usuario}/emails Listar buzones
POST /api/v1/accounts/{usuario}/emails Crear buzón
GET /api/v1/accounts/{usuario}/forwarders Listar reenviadores
POST /api/v1/accounts/{usuario}/forwarders Crear reenviador
GET /api/v1/accounts/{usuario}/login-url Reservado para acceso directo del cliente

Estado del servidor

bash
curl https://srv.tudominio.com:2087/api/v1/health \
  -H "Authorization: Bearer TOKEN"

Devuelve la versión, el hostname, el estado general y el de Apache, Nginx, MariaDB, BIND, Exim y Dovecot.

Listar cuentas

bash
curl https://srv.tudominio.com:2087/api/v1/accounts \
  -H "Authorization: Bearer TOKEN"

Cada cuenta incluye, como mínimo:

json
{
  "id": "cliente1",
  "username": "cliente1",
  "domain": "cliente.com",
  "plan": "Medio",
  "status": "active",
  "ip": "203.0.113.10",
  "contactEmail": "admin@cliente.com",
  "diskUsage": "250 MB",
  "bandwidthUsage": "1.2 GB",
  "createdAt": "2026-08-02T12:00:00.000Z",
  "owner": "root"
}

Crear una cuenta

bash
curl https://srv.tudominio.com:2087/api/v1/accounts \
  -H "Authorization: Bearer TOKEN" \
  -H "Content-Type: application/json" \
  --data '{
    "domain": "cliente.com",
    "username": "cliente1",
    "plan": "Medio",
    "contactEmail": "admin@cliente.com"
  }'

Crea la cuenta con el mismo proceso que el panel: usuario Linux, public_html, zona DNS, vhost, permisos, límites del plan y correo. Si no envías password, ImnovaPanel genera una segura y la devuelve una sola vez en generatedPassword.

Suspender, reactivar y eliminar

bash
curl -X POST https://srv.tudominio.com:2087/api/v1/accounts/cliente1/suspend \
  -H "Authorization: Bearer TOKEN"

curl -X POST https://srv.tudominio.com:2087/api/v1/accounts/cliente1/unsuspend \
  -H "Authorization: Bearer TOKEN"

curl -X DELETE https://srv.tudominio.com:2087/api/v1/accounts/cliente1 \
  -H "Authorization: Bearer TOKEN"
Precaución
DELETE elimina la cuenta real: archivos, vhosts, zonas DNS, correo, FTP y bases de datos registradas. No se puede deshacer.

Crear un buzón

bash
curl https://srv.tudominio.com:2087/api/v1/accounts/cliente1/emails \
  -H "Authorization: Bearer TOKEN" \
  -H "Content-Type: application/json" \
  --data '{ "localPart": "info", "quota": "1024 MB" }'

También se puede enviar email con la dirección completa, siempre que el dominio pertenezca a la cuenta.

Crear un reenviador

bash
curl https://srv.tudominio.com:2087/api/v1/accounts/cliente1/forwarders \
  -H "Authorization: Bearer TOKEN" \
  -H "Content-Type: application/json" \
  --data '{
    "source": "contacto@cliente.com",
    "destination": "cliente@gmail.com",
    "keepLocalCopy": true
  }'

keepLocalCopy: true entrega una copia en el buzón local además de reenviar.

Acceso directo del cliente

/api/v1/accounts/{usuario}/login-url está reservado para un acceso directo seguro al panel del cliente. Mientras no esté habilitado, responde 501 con el código login_url_not_available, para que el sistema externo lo maneje sin romperse.

Prueba de integración

  1. Configura el token y ejecuta Test API.
  2. Consulta /api/v1/health.
  3. Importa los planes (/api/v1/plans) y las cuentas (/api/v1/accounts).
  4. Crea una cuenta de prueba.
  5. Crea un buzón y un reenviador con copia local.
  6. Suspende y reactiva la cuenta.
  7. Elimina la cuenta de prueba.
Versiones

Versiones

Cómo se numeran las versiones de ImnovaPanel, qué versión tienes instalada, canales de publicación y cómo se distribuyen las actualizaciones.

Versión actual

Versión documentada 0.71.314
Etapa Beta
Estado Publicada en stable el 2 de octubre de 2026
Novedades Changelog de la 0.71.314 · Registro de publicaciones

Cómo se numeran

Las versiones siguen el formato 0.MENOR.REVISIÓN, por ejemplo 0.71.294:

  • 0 indica que el producto todavía no alcanzó la versión 1.0 de disponibilidad general.
  • 71 es la serie actual. Las versiones de la serie 0.71 se actualizan en el lugar con iapanel update, sin reinstalar.
  • 294 es el número de revisión: aumenta con cada versión publicada, sea una corrección, una mejora o una función nueva.

Una revisión más alta siempre incluye todos los cambios de las anteriores. No hace falta instalar versiones intermedias: iapanel update pasa directamente a la última.

Qué versión tengo

Cualquiera de estas opciones:

bash
iapanel version
  • En el panel, debajo del logo de la barra lateral.
  • Por la API: GET /api/v1/health devuelve la versión. Ver API v1.

Canales

Canal Descripción
stable Versiones publicadas para todos los servidores. Es el canal que usa iapanel update por defecto
staging Versiones candidatas que se validan en servidores de prueba antes de pasar a stable

Desde la 0.71.294, cada versión se publica primero en staging y se valida en un servidor real antes de pasar a stable.

Cómo se distribuye cada versión

Cada versión publicada incluye:

  • El paquete imnovapanel-<versión>.tar.gz, generado desde un commit concreto, con solo los archivos del producto y permisos seguros (propietario root, archivos 0644).
  • El manifiesto version.json, con la versión, el canal, la suma SHA-256 del paquete, el commit de origen, la suma del agente privilegiado y las notas de la versión.
  • Un manifiesto interno RELEASE-MANIFEST.json, dentro del paquete, con la suma SHA-256 de cada archivo (desde la 0.71.294).

iapanel update verifica la suma del paquete contra el manifiesto antes de instalar. Ver Actualizaciones.

Dónde se descargan

Todas las descargas e instalaciones salen de https://imnovapanel.net/downloads/, con certificado TLS válido:

ArchivoDirecciónUso
Instaladorhttps://imnovapanel.net/downloads/install.shInstalación nueva con un solo comando
Manifiesto establehttps://imnovapanel.net/downloads/version.jsonLo consulta iapanel update en cada servidor
Paquete de una versiónhttps://imnovapanel.net/downloads/imnovapanel-<versión>.tar.gzPaquete exacto de cada versión
Última versiónhttps://imnovapanel.net/downloads/imnovapanel-latest.tar.gzCopia del paquete de la versión estable
Manifiesto de pruebashttps://imnovapanel.net/downloads/staging/version.jsonSolo para servidores de prueba
Mirror de CSFhttps://imnovapanel.net/downloads/csf.tgzLo usa el instalador para el firewall
Importante

Transición desde el servidor anterior. Los servidores con la versión 0.71.294 o anterior todavía consultan las actualizaciones en srv.imnovationwebs.com. Mientras queden servidores en esas versiones, cada versión nueva también se publica allí. Al instalar la 0.71.295, cada servidor pasa a usar imnovapanel.net automáticamente.

Cómo se publica una actualización

Cada versión sigue siempre el mismo procedimiento, desde el repositorio del panel:

1. Preparar la versión

  • Todos los cambios tienen que estar guardados en un commit.
  • Subir el número en package.json (por ejemplo, de 0.71.295 a 0.71.296).
  • Escribir las notas de la versión en release-notes/<versión>.md.

2. Generar el paquete

bash
npm run release:package -- --agent RUTA_AL_AGENTE --agent-version 0.71.291 --notes-file release-notes/0.71.296.md

Solo empaqueta archivos guardados en git, con permisos seguros, busca credenciales por error y genera .release/imnovapanel-<versión>.tar.gz y su manifiesto con la suma SHA-256 y el commit.

3. Publicar en pruebas (staging)

bash
IMNOVA_RELEASE_HOST=imnovapanel.net IMNOVA_RELEASE_USER=root IMNOVA_RELEASE_HOST_FINGERPRINT=SHA256:XXXX IMNOVA_RELEASE_KEY_FILE=~/.ssh/id_ed25519 IMNOVA_RELEASE_STAGING_BASE_URL=https://imnovapanel.net/downloads/staging npm run release:publish:staging

Publica solo en /downloads/staging/. Los servidores de clientes no ven nada.

4. Probar en un servidor de pruebas

bash
iapanel update --manifest=https://imnovapanel.net/downloads/staging/version.json --force
iapanel doctor

La versión se aprueba solo si iapanel doctor termina con FAIL=0 y funcionan el login de administrador y de cliente, la terminal, el correo y los sitios. Los puertos se comprueban desde otra máquina.

5. Publicar en producción (stable)

bash
IMNOVA_RELEASE_HOST=imnovapanel.net IMNOVA_RELEASE_USER=root IMNOVA_RELEASE_HOST_FINGERPRINT=SHA256:XXXX IMNOVA_RELEASE_KEY_FILE=~/.ssh/id_ed25519 npm run release:publish:production

Sube el mismo paquete que se probó: el paquete primero y el manifiesto version.json al final, y verifica la suma de cada archivo en el servidor. Durante la transición, repite este paso apuntando al servidor anterior.

6. Registrar

Agregar la versión al registro de publicaciones y al changelog.

Nota

La publicación verifica la identidad del servidor de descargas con la huella de su clave SSH (IMNOVA_RELEASE_HOST_FINGERPRINT) y rechaza la conexión si no coincide.

Registro de publicaciones

Cada versión generada, con su canal, el commit de origen y la suma del paquete publicado:

VersiónFechaCanal / estadoCommitSHA-256 del paqueteContenido
0.71.31403/10/2026Stable (actual)8afaac5ab8ae377…05a571Las versiones de PHP sin sitios siguen apagadas al reiniciar
0.71.31302/10/2026Stableb0555e27aaef61c…6d304bAjustes del sistema al actualizar
0.71.31202/10/2026Stablec448f416f79e058…5ac03bMenos memoria en reposo
0.71.31102/10/2026Stablea94bbd2193f6da7…8daaa6IP correcta en dominios nuevos y en Network Configuration
0.71.31002/10/2026Stablee897202e1788d8d…c93178Final del instalador más simple
0.71.30902/10/2026Stable94dbd171a9e1f06…df787eOrden de la reparación del sistema
0.71.30802/10/2026Stable2588fb328a37327…14d1c8Correcciones de una instalación nueva en OVH
0.71.30702/10/2026Stable233a7e6a7c80818…a15511El instalador ya no corta la sesión SSH al activar CSF
0.71.30602/10/2026Stableb92a718299a73a2…b65307Actualizaciones de MariaDB desde el panel
0.71.30502/10/2026Stable7aaf12617d81343…469721Revendedores según el plan
0.71.30402/10/2026Stable860bb18db473580…09d19dAvisos de restauración
0.71.30302/10/2026Stable27eeb74a45f032b…326848Migración remota desde cPanel
0.71.30202/10/2026Stablecf04ade834e2036…7b11adReintentos de tareas automáticas
0.71.30102/10/2026Stable3212ef20d4fbf56…7faafdPermisos de escritura de los sitios, reenvíos reales
0.71.30002/10/2026Stableb98292b65437121…c39bb6Migración completa desde backups de cPanel
0.71.29902/10/2026Stablec5aef8522f539c8…e782f5PHP 7.4 en servidores existentes
0.71.29802/10/2026Stablef3b755f41d1e92a…19ab70PHP 7.4
0.71.29702/10/2026Stablef53f63a37a8428d…137a98Inglés, ver contraseñas, SSL del hostname
0.71.29602/10/2026Stablef66c30978cbe0d0…f65719Instalador: CSF
0.71.29501/10/2026Stable59d2cb2eff7cc47…2d0a12Descargas desde imnovapanel.net, instalador de un comando, aviso de licencia, suspensión de sitios por licencia suspendida, verificación de licencias reforzada
0.71.29430/09/2026Staging: validada en un servidor de pruebas; reemplazada por la 0.71.295fedde9951dc0722…51d9b0Actualización de seguridad crítica
0.71.29329/09/2026Stable (producción). Debe reemplazarse por la 0.71.294—49bb444d…b96997Logo oficial
0.71.29227/09/2026Stable—db3dcb69…8e90Dashboard del cliente
0.71.29027/09/2026Stable—542cb802…53da63dDashboard del administrador

Antes de la 0.71.294 los paquetes no registraban el commit de origen.

Actualizaciones de seguridad

Las correcciones de seguridad se publican como una revisión nueva de la serie actual, marcada como actualización de seguridad en el changelog. Instálalas cuanto antes con iapanel update.

No se publican parches para revisiones anteriores: la forma de recibir una corrección es actualizar a la última versión.

Historial

Consulta el changelog para ver los cambios de cada versión.

Versiones

Changelog

Cambios de cada versión de ImnovaPanel: nuevas funciones, mejoras, correcciones y actualizaciones de seguridad.

Historial de cambios de ImnovaPanel, de la versión más reciente a la más antigua. Para actualizar, ejecuta iapanel update. Ver Actualizaciones.

Versión Fecha Destacado
0.71.308 – 0.71.309 02/10/2026 Correcciones de una instalación nueva en OVH: SSL del hostname, correo del sistema, alertas del firewall, renovación de certificados y cuotas de disco
0.71.307 02/10/2026 El instalador ya no corta la sesión SSH al activar CSF
0.71.306 02/10/2026 Actualizaciones de MariaDB desde el panel
0.71.305 02/10/2026 Revendedores según el plan de la licencia
0.71.304 02/10/2026 Avisos durante la restauración de cuentas
0.71.303 02/10/2026 Migración remota desde cPanel
0.71.302 02/10/2026 Reintentos de tareas automáticas
0.71.301 02/10/2026 Los sitios pueden escribir en su carpeta; reenvíos reales
0.71.300 02/10/2026 Migración completa desde backups de cPanel
0.71.299 02/10/2026 PHP 7.4 en servidores existentes
0.71.298 02/10/2026 PHP 7.4
0.71.297 02/10/2026 Panel en inglés, ver contraseñas, SSL del hostname
0.71.296 02/10/2026 Instalador: CSF ya no se traba
0.71.295 01/10/2026 Descargas desde imnovapanel.net, aviso y suspensión por licencia
0.71.294 29/09/2026 Seguridad crítica
0.71.293 29/09/2026 Logo oficial de ImnovaPanel
0.71.292 27/09/2026 Nuevo dashboard del cliente
0.71.291 27/09/2026 Modo claro completo del tema Beta
0.71.290 27/09/2026 Nuevo dashboard del administrador
0.71.288 – 0.71.289 27/09/2026 Ajustes visuales del tema Beta
0.71.253 – 0.71.259 20/08/2026 Certificados SSL reales para SMTP e IMAP
0.71.241 04/08/2026 Firma DKIM compatible con Gmail
0.71.225 – 0.71.240 julio–agosto 2026 Despliegue de apps desde ZIP/RAR/TAR y API v1
0.71.215 – 0.71.220 30–31/07/2026 Reenviadores de correo reales

0.71.314

3 de octubre de 2026

  • Menos memoria (unos 230 MB en un servidor nuevo): las versiones de PHP que ningún sitio usa siguen apagadas después de reiniciar. Los paquetes de PHP hacen que Apache y nginx enciendan todas las versiones instaladas, aunque estén deshabilitadas, así que volvían en cada reinicio. El panel lo evita para las versiones sin sitios y sigue encendiendo una versión apenas un sitio la elige.

0.71.313

2 de octubre de 2026

  • Al actualizar desde la 0.71.308 a 0.71.311, el ahorro de memoria de la 0.71.312 se aplicaba recién un día después. Ahora se aplica apenas termina la actualización.

0.71.312

2 de octubre de 2026 · Menos memoria

Mejoras

  • Menos memoria en servidores con pocos sitios (unos 300 MB menos en un servidor nuevo). Las versiones de PHP que ningún sitio usa ya no quedan corriendo: el panel enciende una versión apenas un sitio la elige. El PHP del sistema sigue activo porque lo usan phpMyAdmin y el webmail.
  • SpamAssassin deja un solo proceso esperando en lugar de dos (cada uno ocupa unos 100 MB de reglas) y abre un segundo cuando hay carga.

Correcciones

  • Crear un sitio con una versión de PHP por primera vez podía no encender esa versión, por un límite de tiempo de 1 segundo.

0.71.311

2 de octubre de 2026

Correcciones

  • En una instalación nueva, Network Configuration muestra el hostname y la IP reales del servidor. Antes mostraba una IP de ejemplo (192.168.1.100) y el hostname vacío.
  • El primer subdominio o alias creado antes de que cargara la configuración de red podía quedar con la IP de ejemplo 192.168.1.100 en su registro DNS A. Ahora las cuentas y los dominios nuevos siempre usan una IP del servidor: la IP compartida, salvo que se elija otra IP del servidor.

0.71.310

2 de octubre de 2026

  • El instalador termina con un mensaje simple: pide reiniciar el servidor para completar la instalación. Los detalles técnicos del ajuste final del sistema quedan en /var/log/iserverpanel-system-repair.log.

0.71.309

2 de octubre de 2026

  • Después de actualizar, los ajustes del sistema de la 0.71.308 se aplican cuando el correo del sistema ya tiene la dirección correcta, así el reinicio del firewall no manda alertas a la dirección anterior.

0.71.308

2 de octubre de 2026 · Correcciones de una instalación nueva en OVH

Correcciones

  • SSL del hostname con dominios de dos niveles como .com.ar, .com.br o .co.uk: el panel registraba en Let's Encrypt el correo admin@com.ar, que Let's Encrypt rechaza. Ahora usa el correo de contacto del servidor o se registra sin correo. Si el certificado no se puede emitir, el panel muestra el motivo real.
  • Cambiar el hostname actualiza todo lo que lo usa: la zona horaria (quedaba en UTC), los resolvedores DNS (se guardaban pero nunca se aplicaban), /etc/hosts, el puerto de clientes 2083, los accesos directos del 443, el webmail, el correo del sistema y el certificado. En servidores en la nube (OVH y otros) el hostname se mantiene después de reiniciar.
  • Correo del sistema: el correo para root ya no va al dominio del proveedor (root@ovh.ca), donde rebotaba y se acumulaba congelado en la cola. Esos rebotes se borran al actualizar.
  • Alertas del firewall: lfd ya no manda alertas cada pocos minutos por los propios servicios de hosting (PHP-FPM, nginx, httpd, MariaDB, Dovecot...). Las alertas van al correo de contacto del servidor.
  • Correo desde PHP con SELinux activo (formularios de contacto): el permiso que lo habilita no se estaba aplicando.
  • Renovación automática de los certificados SSL: se activa la tarea de renovación de certbot y los servicios cargan el certificado renovado.
  • Al eliminar un dominio se retira su certificado y certbot deja de intentar renovarlo. Los certificados de dominios ya eliminados se retiran al actualizar y se guardan en /etc/letsencrypt/retired-by-imnovapanel.
  • Cuotas de disco: los límites de disco de los paquetes se aplican de verdad. Se preparan al actualizar y se activan con el próximo reinicio del servidor; hasta entonces, la pantalla de paquetes lo avisa. Las cuentas que ya superan su límite se omiten y quedan listadas en el registro del panel.
  • Nginx ya no muestra el aviso conflicting server name en cada recarga, y la zona DNS del hostname incluye webmail.

Nuevo

  • Correo de contacto del servidor en Network Configuration: recibe las alertas del firewall y los avisos de Let's Encrypt.
  • Network Configuration avisa cuando el DNS inverso (PTR) de la IP no coincide con el hostname, algo que perjudica la entrega del correo. Se cambia en el panel del proveedor.
  • Nuevo comando iapanel system-repair, que aplica estos ajustes del sistema. El panel lo ejecuta una vez después de actualizar.

0.71.307

2 de octubre de 2026

Correcciones

  • El instalador ya no deja la terminal congelada al cargar las reglas del firewall CSF (pasaba en algunos servidores, como OVH). Antes de cargarlas abre en CSF el puerto SSH real del servidor y permite la IP de la sesión desde la que se instala. Solo esa sesión: nunca otras conexiones abiertas.
  • Si la terminal deja de responder en el paso del firewall, un mensaje aclara que la instalación sigue y cómo comprobarla al reconectar con iapanel status.

0.71.306

2 de octubre de 2026 · Actualizaciones de MariaDB

Nuevo

  • MariaDB se actualiza desde el panel (MySQL/MariaDB Configuration): muestra la versión instalada, busca cada 12 horas actualizaciones de la misma serie (correcciones de seguridad y errores) y las aplica con un botón. Antes se guarda una copia completa de todas las bases; después se reinicia MariaDB y se verifica cada base. Si MariaDB no arranca bien, se vuelve solo a la versión anterior.
  • Nuevo comando iapanel mariadb-update para hacer lo mismo desde la terminal.

0.71.305

2 de octubre de 2026

Mejoras

  • Las cuentas de revendedor dependen del plan de la licencia: están incluidas en los planes Standard y Professional. En Trial y Basic, al intentar crear un revendedor el panel indica qué planes lo incluyen.

0.71.304

2 de octubre de 2026

Mejoras

  • Server Migrations y la restauración de backups de cPanel avisan que el panel puede no responder durante unos minutos mientras se restaura una cuenta: un aviso antes de empezar y un cartel mientras se restaura cada cuenta.

0.71.303

2 de octubre de 2026 · Migración remota desde cPanel

Nuevo

  • Migración directa desde un servidor cPanel/WHM (Transfer Tool → Server Migrations). Te conectas por SSH como root, con contraseña o clave privada, verificas la huella del servidor, eliges las cuentas y se migran de a una sin descargar ni subir archivos a mano: se empaquetan en cPanel (pkgacct), se descargan (la descarga se retoma si se corta) y se restauran con sitios web, bases de datos, correo con sus contraseñas originales, dominios, DNS, reenvíos y tareas cron.
  • Cada cuenta muestra su progreso, el resultado y lo que conviene revisar. Las cuentas en espera o en curso se pueden cancelar.
  • Antes de cada cuenta se verifica el espacio libre en los dos servidores, y los archivos temporales se borran en ambos.

Seguridad

  • La contraseña o la clave SSH solo se guardan en memoria durante la migración: nunca se escriben en disco ni en los registros.

Correcciones

  • La pantalla anterior de Server Migrations era una demostración que no migraba nada; se reemplazó por la migración real.

0.71.302

2 de octubre de 2026

Mejoras

  • Las tareas automáticas que se ejecutan después de una actualización (permisos de escritura de los sitios e instalación de PHP 7.4) se reintentan al día siguiente si fallan.

0.71.301

2 de octubre de 2026

Correcciones

  • Los sitios web vuelven a poder escribir en su propia carpeta. Con SELinux activo fallaban las subidas de archivos, las cachés y la instalación de plugins o módulos (por ejemplo, subir imágenes en WordPress o la caché de PrestaShop). Los servidores existentes se corrigen solos al actualizar; cada sitio sigue funcionando con su propio usuario.
  • Los reenvíos de correo del panel del cliente ahora son reales: se guardan en el servidor y los entrega el servidor de correo, con la opción de conservar una copia en el buzón. Antes solo existían en el navegador.
  • Al eliminar una cuenta también se eliminan sus usuarios de base de datos.

Migración desde cPanel (probada con una cuenta real de cPanel 11.136)

  • Si la cuenta se restaura con otro nombre de usuario, sus bases de datos y usuarios se renombran con el prefijo nuevo y se actualiza la configuración del sitio (WordPress, PrestaShop, Laravel, Joomla y Moodle) para que siga funcionando. También se limpian las cachés de la aplicación.
  • Ya no se importan los registros DNS propios de cPanel (validaciones de AutoSSL, CalDAV, CardDAV y autodiscover), y los registros TXT con caracteres escapados (como DMARC) se importan correctamente.
  • Un aviso explica cuando el backup se generó sin los mensajes de correo.

0.71.300

2 de octubre de 2026 · Migración completa desde backups de cPanel

Nuevo

  • Restaurar un backup de cPanel (cpmove-USUARIO.tar.gz) ahora también recrea los dominios adicionales, subdominios y alias, cada uno con su carpeta y su versión de PHP; los registros DNS de cada dominio, apuntando a este servidor; los reenvíos y las tareas cron.
  • Los buzones conservan sus contraseñas originales de cPanel, así que los programas de correo siguen funcionando sin cambios. La cuenta también conserva su contraseña.
  • El resumen de la restauración muestra todo lo migrado y lo que conviene revisar (por ejemplo, cuentas FTP, autorespuestas o una versión de PHP no disponible).
  • Los reenvíos de correo funcionan: el servidor de correo los entrega, con la opción de conservar una copia en el buzón.

Correcciones

  • Los registros DNS SRV se escriben correctamente y la prioridad 0 de un registro MX se respeta.
  • Los backups grandes de cPanel ya no se cortan a los 3 minutos al copiar los sitios y los buzones.
  • Al eliminar una cuenta también se eliminan sus reenvíos y sus tareas cron.

0.71.299

2 de octubre de 2026

  • Los servidores que ya tenían ImnovaPanel instalado reciben PHP 7.4 automáticamente al actualizar: el panel lo instala en segundo plano la primera vez que arranca. Las instalaciones nuevas ya lo incluyen.
  • Nuevo comando iapanel ensure-php74 para instalar PHP 7.4 cuando lo necesites.

0.71.298

2 de octubre de 2026 · PHP 7.4

Nuevo

  • PHP 7.4 disponible para sitios heredados, junto a PHP 8.0 a 8.5. En el selector figura como versión heredada: PHP 7.4 ya no recibe actualizaciones oficiales (Remi sigue publicando correcciones de seguridad), así que úsalo solo para sitios que todavía no funcionan con PHP 8.

Correcciones

  • Instalar o quitar módulos de PHP desde el panel vuelve a funcionar: la instalación se detenía al segundo.
  • iapanel ssl-hostname ya no informa un error cuando el certificado del hostname ya está aplicado.

0.71.297

2 de octubre de 2026

Mejoras

  • El panel está disponible solo en inglés por ahora.
  • Todos los campos de contraseña (acceso, cuentas, bases de datos, FTP, correo, revendedores y contraseña del servidor) tienen un botón para mostrarla u ocultarla.
  • La barra lateral muestra el tipo de licencia del servidor debajo de la versión del panel (por ejemplo, "Trial license" o "Standard license"). Solo lo ven los administradores.

Correcciones

  • SSL del hostname del panel: emitir o renovar el certificado desde el panel ahora se completa de verdad. Antes se detenía al segundo e informaba éxito sin emitir nada. Si falla, muestra el error real, y el certificado se aplica a los puertos de administración, clientes y webmail. La pantalla tiene un único botón "Issue / Renew SSL certificate"; se quitaron los botones duplicados.

0.71.296

2 de octubre de 2026

Correcciones

  • El instalador ya no se queda trabado en el paso del firewall (CSF) en algunos servidores: el arranque de CSF y la instalación de sus módulos tienen tiempo límite y muestran el progreso, y un paso que se pasa de tiempo se detiene por completo.
  • Si CSF no puede cargar sus reglas, el instalador vuelve a activar firewalld para que el servidor nunca quede sin firewall.
  • El aviso de licencia del panel ya no pide una clave: pide o renueva la licencia para la IP del servidor en imnovapanel.net y el panel se desbloquea solo en menos de 5 minutos.

0.71.295

1 de octubre de 2026 · Descargas desde imnovapanel.net

Nuevo

  • Las descargas y las actualizaciones pasan a https://imnovapanel.net/downloads/. El manifiesto y los paquetes se descargan verificando el certificado TLS.
  • Instalador de un solo comando: curl -fsSL https://imnovapanel.net/downloads/install.sh | bash. Verifica la suma SHA-256 del paquete antes de ejecutar nada.
  • Si la licencia deja de ser válida con el panel abierto, el panel muestra el motivo y cómo resolverlo, en lugar de quedarse cargando. Los clientes y revendedores ven un aviso neutro. Los sitios, el correo, las bases de datos y el DNS siguen funcionando.
  • Si el servidor de licencias confirma que la licencia está suspendida, vencida, revocada o cancelada, los sitios web muestran una página de "Sitio temporalmente suspendido" después de 72 horas, con cuenta regresiva en el panel. Un corte de red o del servidor de licencias nunca suspende los sitios. El correo, las bases de datos y el DNS no se ven afectados, y los sitios vuelven solos al renovar.

Seguridad

  • El instalador ya no descarga CSF desde una IP fija sin verificar el certificado.

Correcciones

  • Instalaciones nuevas en AlmaLinux 9: Apache ya no ocupa el puerto 443 que necesita Nginx, la configuración del webmail ya no se detiene por una variable sin definir, y el paso del firewall muestra el progreso y tiene un tiempo máximo en lugar de parecer colgado.
  • El SSL del hostname consulta varios servidores DNS públicos: un servidor que todavía guarda una respuesta vieja ya no impide emitir el certificado.
  • Los certificados de Let's Encrypt se emiten correctamente en servidores con permisos predeterminados restrictivos. Las instalaciones existentes se reparan solas al actualizar.
  • Verificación de licencias reforzada: las licencias se verifican siempre con la clave oficial incluida en el panel y solo con la respuesta firmada por el servidor de licencias. Ni la configuración ni los archivos editados pueden habilitar una licencia.

0.71.294

29 de septiembre de 2026 · Actualización de seguridad crítica

Importante

Todos los servidores deben instalar esta versión: iapanel update.

Seguridad

  • Corregido un problema de control de acceso en el inicio de sesión de administración que podía otorgar privilegios elevados a cuentas que no son de administrador.
  • La doble autenticación (2FA) se exige en todos los accesos administrativos, incluida la terminal web.
  • Las solicitudes de autenticación mal formadas ya no pueden interrumpir el servicio del panel.
  • La terminal web usa tickets de conexión de un solo uso y de corta duración: las credenciales de sesión ya no aparecen en los logs del proxy.
  • La protección de inicio de sesión y la auditoría usan la IP real del cliente. Las entradas de auditoría registran rol, sesión, recurso y hora UTC.
  • Las sesiones de la terminal web quedan registradas en la auditoría.
  • Se cierran los puertos HTTP sin cifrar 2082 y 2086 y el puerto de MariaDB 3306, también en los servidores ya instalados. El panel queda solo por HTTPS en 2083, 2087 y 2096; el acceso HTTP de rescate funciona solo en el servidor, a través de un túnel SSH.

Nuevo

  • iapanel doctor informa como fallo los puertos inseguros abiertos al público.
  • Comando iapanel harden-ports.

Mejoras

  • Los paquetes de actualización se distribuyen con propietario root y permisos seguros, e incluyen un manifiesto con la suma SHA-256 de cada archivo. Ya no incluyen datos de desarrollo ni documentos internos.

0.71.293

29 de septiembre de 2026

Mejoras

  • Logo oficial de ImnovaPanel en las barras laterales del administrador y del cliente.
  • Marca coherente en las pantallas de inicio de sesión del administrador, del cliente y de acceso temporal.
  • El logo oficial se usa como favicon del navegador.

0.71.292

27 de septiembre de 2026

Mejoras

  • El sistema visual del dashboard Beta llega al panel del cliente.
  • Las tarjetas de recursos del cliente y los accesos rápidos se alinean con el dashboard del administrador.
  • Estilo claro completo y comportamiento adaptable para el dashboard del cliente.

Correcciones

  • Las rutas largas ya no desbordan las tarjetas de métricas.

0.71.291

27 de septiembre de 2026

Mejoras

  • Modo claro completo para el tema Beta: barra lateral, cabecera, contenido y widget de cuenta claros.
  • Estilos legibles en modo claro para código, endpoints de API, rutas, etiquetas y controles deshabilitados.
  • La terminal y las salidas de consola se mantienen oscuras con texto claro.

0.71.290

27 de septiembre de 2026

Mejoras

  • Nuevo dashboard del administrador en el tema Beta, más denso y profesional.
  • Gráfico de la carga reciente del servidor e historial compacto de CPU, memoria, disco y cuentas, con datos reales del servidor.
  • Cuadrícula de servicios básicos con íconos por servicio y controles compactos.

0.71.288 – 0.71.289

27 de septiembre de 2026

Mejoras

  • Tema Beta: barra lateral oscura continua y elemento activo unido al área de contenido.
  • Los botones destructivos usan una superficie neutra con un acento rojo solo en el ícono.
  • Se oculta la barra de desplazamiento del menú lateral, manteniendo el desplazamiento con rueda, trackpad, gestos táctiles y teclado.

0.71.253 – 0.71.259

Agosto de 2026

Nuevo

  • 0.71.253: Certificados reales para SMTP e IMAP. El panel busca o emite certificados Let's Encrypt para mail.<dominio> y los aplica a Exim y a Dovecot (con SNI por dominio).
  • 0.71.259: El correo generado por el propio servidor (cron, rebotes, alertas) sale con el dominio base del hostname, para que pase SPF y DKIM.

Correcciones

  • 0.71.254: Antes de emitir certificados de correo, el panel garantiza y prueba la ruta ACME en Nginx.
  • 0.71.255: El sitio para dominios no configurados carga primero, evitando que mail.<dominio> caiga en otro vhost.
  • 0.71.256: La ruta ACME también responde en el servidor por defecto de Nginx de AlmaLinux.
  • 0.71.257 y 0.71.258: Exim lee los certificados de correo desde una copia con permisos controlados. Soluciona errores CERTIFICATE_VERIFY_FAILED y Permission denied.

0.71.241

4 de agosto de 2026

Correcciones

  • DKIM: Exim no podía leer la clave privada con la ruta dinámica que usaba y las firmas fallaban en Gmail. Ahora usa una tabla de dominios autorizados (/etc/exim/dkim/keypaths) con permisos correctos. Los registros DNS de DKIM no cambian.

0.71.225 – 0.71.240

Julio y agosto de 2026

Nuevo

  • 0.71.225: https://dominio:2087 y https://dominio:2083 muestran el certificado del dominio alojado cuando ya tiene SSL.
  • 0.71.226 y 0.71.227: Despliegue de aplicaciones Node.js y Python desde archivos ZIP, RAR y TAR, con análisis previo del proyecto y el botón Subir ZIP/RAR.
  • 0.71.234: Los proyectos Vite/React se compilan y se publican con un servidor estático interno. El panel verifica el estado real del servicio al iniciar o reiniciar una app.
  • 0.71.235 y 0.71.236: API v1 para integrar ImnovaPanel con sistemas de facturación: la pantalla API Tokens & Webhooks queda siempre visible, el token se aplica sin esperar al reinicio, el listado de cuentas incluye IP y email de contacto, y se agrega la eliminación de cuentas por API.
  • 0.71.238: El soporte RAR usa la primera herramienta disponible entre unrar, bsdtar, 7z y unar, y trata de instalar una si falta.

Mejoras

  • 0.71.229: Las notificaciones aparecen por encima de las ventanas modales.
  • 0.71.230: Los formularios del cliente seleccionan el dominio automáticamente si la cuenta tiene uno solo.
  • 0.71.231: La barra lateral muestra la versión real instalada.
  • 0.71.232: Aviso claro cuando la carpeta de destino de una app ya tiene archivos.
  • 0.71.237: Si faltan herramientas RAR, el panel intenta instalar libarchive.

Correcciones

  • 0.71.228: Las carpetas apps y logs de la cuenta se reparan con el propietario correcto (error status=200/CHDIR).
  • 0.71.230 y 0.71.233: Eliminar una app detiene su servicio, quita el proxy y borra su carpeta.
  • 0.71.239: Sobrescribir destino también reemplaza la app ya registrada en el dominio.
  • 0.71.240: Se reparan los permisos de node_modules/.bin antes de compilar (error tsc: Permission denied).

0.71.215 – 0.71.220

30 y 31 de julio de 2026

Nuevo

  • 0.71.218: Reenviadores de correo reales, aplicados en Exim y persistentes.
  • 0.71.220: Opción Conservar copia en el buzón local al crear un reenviador.
  • 0.71.216: Accesos rápidos a Apps Node.js / Python y Tareas Cron en el dashboard del cliente.

Correcciones

  • 0.71.215: Se corrigen errores Forbidden después de crear cuentas, dominios o subdominios, aplicando propietario, permisos y contexto SELinux correctos. El botón de inicio de sesión muestra el estado de carga.
  • 0.71.217: La pantalla de entregabilidad ya no repite la alerta de error en bucle.
  • 0.71.219: Los reenviadores ya no afectan a los buzones locales que no tienen reenvío.

Las versiones anteriores a la 0.71.215 no tienen notas públicas.

Más información

Limitaciones y hoja de ruta

Qué hace ImnovaPanel hoy, qué funciones están en evolución y qué no incluye todavía.

ImnovaPanel está en beta (versión 0.71). Esta página explica con claridad qué está disponible, qué está en evolución y qué no incluye, para que puedas decidir con información completa.

Estado de las funciones

Área Estado
Cuentas, dominios, DNS, SSL, correo, bases de datos, FTP, archivos Disponible
Aplicaciones Node.js y Python, despliegue desde ZIP/RAR/TAR Disponible
Backups nativos, restauración, importación desde cPanel Disponible
Transferencia entre servidores ImnovaPanel Disponible, de a una cuenta
Terminal web, servicios, procesos, logs Disponible
CSF/LFD, ModSecurity, ClamAV, 2FA, bloqueo por intentos Disponible
Actualizaciones con rollback, CLI iapanel Disponible
API v1 Disponible (acceso directo del cliente pendiente)
Planes y límites de recursos En evolución
Revendedores Primera versión; ver pendientes abajo
Pantalla de auditoría y roles (RBAC) En desarrollo; la auditoría se registra pero no tiene pantalla
Marca blanca En desarrollo
Análisis de malware Disponible, sin cuarentena automática

No incluido todavía

  • Instalador de aplicaciones tipo Softaculous o Installatron.
  • WordPress Toolkit.
  • Docker Manager.
  • Despliegue desde Git.
  • Aislamiento CageFS o CloudLinux LVE. ImnovaPanel usa cuotas y cgroups, que no ofrecen el mismo aislamiento.
  • Destino de backups SFTP remoto (hoy: local y NFS).
  • Respuestas automáticas y filtros de correo.
  • Suspensión selectiva (solo web, solo correo o solo FTP) y páginas de suspensión personalizadas.
  • Importadores de DirectAdmin o Plesk.
  • Marketplace de extensiones.
  • Soporte de Debian, Ubuntu o AlmaLinux 10.
  • PHP 5.6 y versiones EOL descontinuadas (el soporte inicia desde PHP 7.4).

Revendedores: pendientes

Marca blanca por revendedor, nameservers propios por revendedor, integración con facturación, sub-revendedores y tokens de API delegados.

Escala

ImnovaPanel funciona en servidores de producción, pero todavía no completó una campaña extensa de pruebas con cientos de cuentas, múltiples IPs y cargas variadas. Para servidores grandes, consulta antes la capacidad recomendada.

Correo

La entregabilidad no depende solo del panel. El panel configura SPF, DKIM y DMARC, pero también influyen el PTR de la IP (lo configura el proveedor), la reputación de la IP, el contenido y el volumen de envío. Ningún panel puede garantizar la llegada a la bandeja de entrada.

Seguridad

ImnovaPanel aplica controles en varias capas, pero ningún software es invulnerable. La seguridad del servidor también depende de instalar las actualizaciones, usar contraseñas fuertes y 2FA, y mantener copias de respaldo fuera del servidor.

El agente privilegiado todavía no concentra todas las operaciones privilegiadas: parte de ellas sigue en el backend del panel. La hoja de ruta las traslada progresivamente al agente.

Más información

Preguntas frecuentes

Respuestas rápidas sobre instalación, compatibilidad, migración, correo, aplicaciones, seguridad y licencias.

General

¿Qué es ImnovaPanel?

Un panel de control para administrar hosting, servicios y aplicaciones en servidores AlmaLinux 9 desde una interfaz web, con un panel de administración y otro para cada cliente.

¿Es cPanel?

No. Es un producto independiente. Usa flujos de trabajo familiares para quien viene de cPanel (puertos 2087 y 2083, planes, cuentas), pero tiene su propio código y funciones propias, como el despliegue de aplicaciones desde archivos comprimidos.

¿Está listo para producción?

Está en beta (0.71) y ya funciona en servidores de producción. Revisa Limitaciones y hoja de ruta para ver qué está en evolución.

Instalación

¿Qué necesito para instalarlo?

Un servidor AlmaLinux 9 limpio, acceso root, una IPv4 pública, un hostname con DNS apuntando al servidor y una licencia. Ver Requisitos.

¿Funciona en Debian, Ubuntu o AlmaLinux 10?

No. El soporte actual es solo AlmaLinux 9.

¿Puedo instalarlo en un servidor que ya tiene sitios?

No es recomendable. El instalador reemplaza la configuración de los servicios de hosting. Instala en un servidor limpio y migra los sitios.

Migración

¿Puedo migrar desde cPanel?

Sí. El importador procesa backups completos de cPanel y crea una cuenta nueva con archivos, bases de datos, usuarios, correo y DNS. Las contraseñas de los buzones deben restablecerse. Ver Migraciones.

¿Y desde DirectAdmin o Plesk?

No hay importador automático. Crea la cuenta, copia los archivos e importa las bases manualmente.

Aplicaciones

¿Puedo publicar aplicaciones Node.js y Python?

Sí, creándolas a mano o subiendo el proyecto en ZIP, RAR o TAR para que el panel lo analice y prepare el despliegue. Ver Aplicaciones.

¿Qué versiones de PHP incluye?

PHP 7.4, 8.0, 8.1, 8.2, 8.3, 8.4 y 8.5, elegibles por dominio. Ver PHP.

Correo

¿Incluye servidor de correo?

Sí: SMTP (Exim), IMAP y POP3 (Dovecot), webmail (Roundcube), DKIM, SPF, DMARC, antispam y herramientas de diagnóstico.

¿Garantiza que el correo no llegue a spam?

No. El panel configura la base técnica, pero también influyen el PTR de la IP, la reputación, el contenido, el volumen y las políticas del receptor. Ver Correo.

Seguridad y datos

¿Tiene backups?

Sí. Backups nativos con verificación SHA-256, programables, descargables por el cliente y restaurables por el administrador. Ver Backups.

¿Tiene doble autenticación?

Sí, con códigos TOTP para el administrador. Ver Primer acceso.

¿Cómo se actualiza?

Con iapanel update. Guarda un punto de restauración antes de actualizar y vuelve atrás automáticamente si algo falla. Ver Actualizaciones.

¿Cómo actualizo MariaDB?

Desde MySQL/MariaDB Configuration, con el botón Update MariaDB, o con iapanel mariadb-update. El panel avisa cuando hay una actualización de la serie instalada, guarda una copia de todas las bases antes de actualizar y vuelve a la versión anterior si algo falla. Es útil para aplicaciones como Moodle, que piden tener MariaDB al día. Ver Actualizaciones de MariaDB.

Licencias

¿Cómo se licencia?

Por servidor, vinculado a su IPv4 pública. Ver Licencias.

¿Qué pasa si la licencia vence?

El panel se bloquea y tienes 72 horas para renovarla. Si no la renuevas, los sitios web muestran una página de "Sitio temporalmente suspendido"; el correo, las bases de datos y el DNS siguen funcionando. Al renovar, todo vuelve en pocos minutos sin perder datos. Ver Suspensión de los sitios web.

¿Qué pasa si el servidor de licencias no responde?

El panel sigue funcionando con la última validación durante 72 horas.

¿Puedo cambiar la IP de la licencia?

Sí, solicitando la reasignación a la nueva IP y activando la clave en el servidor nuevo.

Documentación de ImnovaPanel 0.71.294 · Actualizada el 29 de septiembre de 2026