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.
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.comrepresenta el hostname de tu servidor y203.0.113.10su IP pública. Reemplázalos por los tuyos.- Los bloques destacados indican información importante:
Información adicional útil.
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.
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 |
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.
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 |
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.
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:
dnf -y update
rebootSi ya tienes el hostname definitivo, configúralo antes de instalar. El instalador lo detecta automáticamente:
hostnamectl set-hostname srv.tudominio.com2. Descargar e instalar
curl -fsSL https://imnovapanel.net/downloads/install.sh | bashEl 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:
curl -fsSL -o install.sh https://imnovapanel.net/downloads/install.sh
less install.sh
bash install.shEl 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:
iapanel license-checkEl 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
iapanel doctordoctor 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:
Admin: https://srv.tudominio.com:2087/
Client: https://srv.tudominio.com:2083/
Webmail: https://srv.tudominio.com:2096/roundcube/
CLI: iapanelContinúa con Primer acceso.
Qué hace el instalador
El instalador ejecuta estos pasos en orden:
- Verifica root y AlmaLinux 9, y detecta la IPv4 y el hostname.
- Habilita los repositorios EPEL, CRB y Remi.
- 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.
- Aplica la política IPv4-first.
- Copia la aplicación a
/opt/iserverpanely compila la interfaz. - Escribe la configuración en
/etc/iserverpanel/iserverpanel.envcon un secreto de sesión aleatorio. - Configura MariaDB solo en
127.0.0.1y aplica un perfil de rendimiento. - Configura Apache como backend local (
127.0.0.1:8080y8443) y Nginx como proxy frontal. - Registra los puertos del panel en SELinux y los abre en firewalld.
- Configura phpMyAdmin, Roundcube, BIND, el correo y el FTP virtual.
- Instala el agente privilegiado
imnovapanel-agent, el servicioiserverpanely la CLIiapanel. - Consulta el estado de la licencia.
- Ajusta permisos, logrotate y tareas programadas, y valida la instalación.
- 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:
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 |
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 doctorpara ver qué componentes necesitan atención.
Si el problema persiste, consulta Solución de problemas.
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
rooty la contraseña de root del servidor. También se acepta el nombreadmin, que equivale aroot. - 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).
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:
iapanel loginEl 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:
- Escribe el hostname completo, por ejemplo
srv.tudominio.com. - Revisa la tabla de registros DNS recomendados: hostname,
admin,login,webmail,mail,ns1yns2. Crea esos registros en tu proveedor DNS o en la zona que administre el propio servidor. - Espera a que el registro A del hostname apunte a la IP del servidor.
- 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:
iapanel ssl-hostnameModo 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.
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.
- En el panel de administración, abre Security & Access Control (Seguridad y acceso) y activa la política de doble factor.
- Genera tu código de configuración y escanea el QR con tu aplicación.
- 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.
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
- Activa tu licencia si aún no lo hiciste.
- Revisa los planes y crea tu primera cuenta.
- Configura la política de backups.
- Verifica la entregabilidad del correo.
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:
Cada instalación de ImnovaPanel necesita una licencia activa (comercial o de prueba) vinculada a la IPv4 pública del servidor.
Cómo funciona
- Pides la licencia (o la prueba) en el portal de clientes para la IP pública del servidor.
- El panel consulta el servidor de licencias con su IP: al terminar la instalación y luego de forma periódica.
- El servidor de licencias responde con un estado firmado digitalmente (Ed25519).
- ImnovaPanel verifica la firma con la clave oficial de ImnovaPanel, que viene incluida en el propio panel, y guarda la respuesta firmada.
- 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:
iapanel license-checkOpcionalmente 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
iapanel license-check --no-activate
iapanel agent licenseEl 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_LIMIThasta volver a estar dentro del límite.
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:
| Momento | Qué pasa |
|---|---|
| Se confirma la suspensión | El panel se bloquea y muestra al administrador una cuenta regresiva de 72 horas. Los sitios siguen funcionando. |
| A las 72 horas | Todos los sitios web del servidor muestran una página de "Sitio temporalmente suspendido" (error HTTP 503, sin indexar en buscadores). |
| Al renovar la licencia | Los 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.
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:
- Solicita la reasignación de la licencia a la nueva IP.
- En el servidor nuevo, ejecuta:
iapanel license-checkLa licencia anterior deja de validar en la IP vieja.
Opciones de iapanel license-check
| 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/usuarioypublic_htmlcon 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.
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 (
setquotaoxfs_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.
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:
/var/log/iserverpanel-accounting.logEs un registro de texto plano, útil para revisar por consola o enviar a un sistema de logs centralizado.
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 |
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:
rooto 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
- En Reseller Center, crea un plan de revendedor con sus límites.
- Crea un revendedor nuevo o promueve un usuario existente y asígnale el plan.
- Si corresponde, reasigna cuentas existentes al revendedor. El panel valida que entren en su capacidad.
- El revendedor entra por el portal de administración con sus credenciales Linux.
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 heredawwwni 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.
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:
- Crea los nameservers en la zona de tu dominio base, por ejemplo
ns1.tudominio.comyns2.tudominio.com, apuntando a la IP del servidor. - En el registrador de
tudominio.com, registra esos nameservers como glue records (hosts personalizados) con la IP del servidor. - En el registrador de cada dominio de cliente, cambia los nameservers a
ns1.tudominio.comyns2.tudominio.com.
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.
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:
iapanel ssl-hostnameAutoSSL para dominios y subdominios
Desde Domains & SSL certificates, el cliente o el administrador emiten el certificado de cada dominio. El panel:
- Verifica que el registro A del dominio apunte a la IP del servidor.
- Comprueba localmente que la ruta
/.well-known/acme-challenge/responde a través de Nginx. - Emite el certificado por webroot con Certbot.
- 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.
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 grupoexim. - Si no puede emitirse el certificado de
mail.<dominio>, se usa el del hostname como alternativa segura.
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:
systemctl status certbot-renew.timerSi aparece como inactivo, habilítalo:
systemctl enable --now certbot-renew.timerPara probar la renovación sin cambiar ningún certificado:
certbot renew --dry-runSi 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.
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 |
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:
- 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). - 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_limitupload_max_filesizepost_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.
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.
Servidor web
Arquitectura Nginx + Apache, caché, compresión, ModSecurity y plantillas de configuración.
Arquitectura
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.
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.
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:usuariosobre los directorios de la cuenta,711en/home/usuarioy755enpublic_htmly los DocumentRoot,- el booleano de SELinux
httpd_enable_homedirsyrestoreconsobrepublic_html.
Si un sitio devuelve 403 Forbidden después de subir archivos, usa Reparar permisos en el administrador de archivos. Ver Panel del cliente.
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 |
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.
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,messagesy 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.
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:
- el límite propio de la cuenta (Correo/hora en la lista de cuentas),
- el límite de su plan,
- 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, modo640), - mantiene la tabla
/etc/exim/dkim/keypathscon los dominios autorizados a firmar, - publica la clave pública en la zona DNS como
default._domainkey.
Para comprobar la clave de un dominio:
opendkim-testkey -d tudominio.com -s default -vvvEl 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
# 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 -bpcMariaDB
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.
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:
- Se guarda una copia completa de todas las bases en
/var/backups/iserverpanel/mariadb(se conservan las 3 últimas). - Se actualiza MariaDB, se reinicia y se ejecuta
mariadb-upgrade. - 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:
ssh -L 3306:127.0.0.1:3306 root@srv.tudominio.comLuego conecta tu cliente de bases de datos a 127.0.0.1:3306.
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.
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.
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.
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.
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 condnf update. - Copia los backups fuera del servidor. Un backup en el mismo disco no protege ante una falla del servidor.
- Revisa
iapanel doctorperió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.
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 |
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.
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:
/usr/local/sbin/iapanel-backup --scope=account --user=usuarioBackups 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
cd /backup
sha256sum -c usuario-20260929101500.ispbackup.tar.gz.sha256Restaurar un backup nativo
En Transfer Tool & Restore, la lista de backups nativos aparece arriba, con buscador por usuario o archivo. Al restaurar, el panel:
- Verifica la suma SHA-256, si existe.
- Recrea la cuenta si fue eliminada.
- Restaura archivos, zonas DNS, bases de datos, usuarios de MariaDB con sus permisos y buzones.
- 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.
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.
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
- En el servidor cPanel de origen, genera un backup completo de la cuenta.
- En ImnovaPanel, abre Transfer Tool & Restore en el panel de administración.
- Sube el archivo desde el navegador, o indica su ruta si ya está en el servidor dentro de
/backup,/backups,/home,/rooto/var/backups. - 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_htmly 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
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
sshpassen el destino (el instalador lo incluye).
Cómo transferir
- En el servidor de destino, abre Transfer Tool & Restore.
- Indica el host del servidor de origen, el puerto SSH, el usuario (
root) y su contraseña. - Pulsa Listar cuentas y elige la cuenta.
- 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.
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
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.bz2y.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.
*/15 * * * * php /home/usuario/public_html/cron.phpTerminal
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.
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.
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 |
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.
- 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.
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 PRIVILEGESsobre 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 |
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:
mysql -u usuario_nombre -p usuario_nombre < volcado.sql- Exportar: desde phpMyAdmin (pestaña Exportar), o incluyendo las bases en un backup de cuenta.
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 (
productionpor 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 en127.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.
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.
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
iapanel update --checkMuestra la versión instalada, la última disponible, el canal y el paquete:
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
iapanel updatePara 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.
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:
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:
iapanel update --rollbackRestaura el último punto de restauración. Para usar uno concreto:
ls /var/backups/iserverpanel/updates/
iapanel update --rollback --file=/var/backups/iserverpanel/updates/preupdate-0.71.293-20260929-120000.tar.gzCanales
| 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:
iapanel update --manifest=https://imnovapanel.net/downloads/staging/version.json --forceNo 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 doctory confirmaFAIL=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.
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
iapanel doctor
iapanel doctor --jsonRevisa 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, deserver.jsy 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
iapanel statusMuestra el estado de iserverpanel, nginx y httpd, y si escuchan los puertos del panel.
iapanel restart
iapanel restartReinicia 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
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
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 salidaVer Licencias.
iapanel login
iapanel login
iapanel login --ttl=300
iapanel login --host=srv.tudominio.com --port=2087Genera 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.
El enlace da acceso total al panel. No lo compartas ni lo pegues en chats o tickets.
iapanel ssl-hostname
iapanel ssl-hostnameRepara 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
iapanel mariadb-updateInstala 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
iapanel system-repairRevisa 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
iapanel harden-portsCierra 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
iapanel agent status
iapanel agent identity
iapanel agent license
iapanel agent capabilitiesConsulta el agente privilegiado: estado, identidad del servidor (un hash, nunca el identificador real), verificación independiente de la licencia y capacidades disponibles.
iapanel optimize
iapanel optimizeAplica el perfil de rendimiento de PHP-FPM y SpamAssassin según los recursos del servidor.
iapanel version
iapanel versionMuestra 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 |
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.
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.confy recarga CSF automáticamente.
Para comprobar los puertos desde otra máquina:
nmap -Pn -p 21,22,25,53,80,443,465,587,993,995,2082,2083,2086,2087,2096,3306 203.0.113.102082, 2086 y 3306 deben aparecer como closed o filtered.
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:
ssh -L 2086:127.0.0.1:2086 root@203.0.113.10Mientras 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.
Arquitectura
Componentes de ImnovaPanel, rutas de archivos, servicios y funcionamiento del agente privilegiado.
Componentes
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 |
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.
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:
sysctlpersistente 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.
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:
iapanel doctorCorrige primero las líneas FAIL. Si el problema es del propio panel, prueba después:
iapanel restartEl 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:
journalctl -u iserverpanel -n 100 --no-pagerNo 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 loginy 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/: ejecutaiapanel restartpara regenerar las rutas ACME de Nginx y vuelve a intentarlo. - Una app SMTP da
CERTIFICATE_VERIFY_FAILED: configura la app conmail.dominioo 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 reparaapps/ylogs/.Permission deniedennode_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
libarchiveounrar.
Actualizaciones
- La actualización falló: el rollback automático deja la versión anterior funcionando. Repite con
iapanel update --verbosepara 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:
- La versión:
iapanel version. - El resultado de
iapanel doctor. - El mensaje de error exacto y los pasos para reproducirlo.
- Las últimas líneas de
journalctl -u iserverpanel -n 100 --no-pager.
No envíes contraseñas, claves de licencia completas, enlaces de iapanel login ni el contenido de iserverpanel.env.
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
- En el panel de administración, abre API Tokens & Webhooks (pantalla API Access).
- En Authorized IPs, escribe la IP pública del sistema que llamará a la API. Puedes dejarlo vacío mientras pruebas.
- Define Requests per minute.
- Pulsa Generate new token y copia el token. Solo se muestra completo una vez.
- Pulsa Test API para confirmar que funciona.
La configuración se guarda en /etc/iserverpanel/iserverpanel.env:
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.
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:
{ "success": true }Error:
{
"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
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
curl https://srv.tudominio.com:2087/api/v1/accounts \
-H "Authorization: Bearer TOKEN"Cada cuenta incluye, como mínimo:
{
"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
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
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"DELETE elimina la cuenta real: archivos, vhosts, zonas DNS, correo, FTP y bases de datos registradas. No se puede deshacer.
Crear un buzón
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
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
- Configura el token y ejecuta Test API.
- Consulta
/api/v1/health. - Importa los planes (
/api/v1/plans) y las cuentas (/api/v1/accounts). - Crea una cuenta de prueba.
- Crea un buzón y un reenviador con copia local.
- Suspende y reactiva la cuenta.
- Elimina la cuenta de prueba.
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:
iapanel version- En el panel, debajo del logo de la barra lateral.
- Por la API:
GET /api/v1/healthdevuelve 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, archivos0644). - 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:
| Archivo | Dirección | Uso |
|---|---|---|
| Instalador | https://imnovapanel.net/downloads/install.sh | Instalación nueva con un solo comando |
| Manifiesto estable | https://imnovapanel.net/downloads/version.json | Lo consulta iapanel update en cada servidor |
| Paquete de una versión | https://imnovapanel.net/downloads/imnovapanel-<versión>.tar.gz | Paquete exacto de cada versión |
| Última versión | https://imnovapanel.net/downloads/imnovapanel-latest.tar.gz | Copia del paquete de la versión estable |
| Manifiesto de pruebas | https://imnovapanel.net/downloads/staging/version.json | Solo para servidores de prueba |
| Mirror de CSF | https://imnovapanel.net/downloads/csf.tgz | Lo usa el instalador para el firewall |
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, de0.71.295a0.71.296). - Escribir las notas de la versión en
release-notes/<versión>.md.
2. Generar el paquete
npm run release:package -- --agent RUTA_AL_AGENTE --agent-version 0.71.291 --notes-file release-notes/0.71.296.mdSolo 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)
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:stagingPublica solo en /downloads/staging/. Los servidores de clientes no ven nada.
4. Probar en un servidor de pruebas
iapanel update --manifest=https://imnovapanel.net/downloads/staging/version.json --force
iapanel doctorLa 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)
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:productionSube 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.
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ón | Fecha | Canal / estado | Commit | SHA-256 del paquete | Contenido |
|---|---|---|---|---|---|
| 0.71.314 | 03/10/2026 | Stable (actual) | 8afaac5 | ab8ae377…05a571 | Las versiones de PHP sin sitios siguen apagadas al reiniciar |
| 0.71.313 | 02/10/2026 | Stable | b0555e2 | 7aaef61c…6d304b | Ajustes del sistema al actualizar |
| 0.71.312 | 02/10/2026 | Stable | c448f41 | 6f79e058…5ac03b | Menos memoria en reposo |
| 0.71.311 | 02/10/2026 | Stable | a94bbd2 | 193f6da7…8daaa6 | IP correcta en dominios nuevos y en Network Configuration |
| 0.71.310 | 02/10/2026 | Stable | e897202 | e1788d8d…c93178 | Final del instalador más simple |
| 0.71.309 | 02/10/2026 | Stable | 94dbd17 | 1a9e1f06…df787e | Orden de la reparación del sistema |
| 0.71.308 | 02/10/2026 | Stable | 2588fb3 | 28a37327…14d1c8 | Correcciones de una instalación nueva en OVH |
| 0.71.307 | 02/10/2026 | Stable | 233a7e6 | a7c80818…a15511 | El instalador ya no corta la sesión SSH al activar CSF |
| 0.71.306 | 02/10/2026 | Stable | b92a718 | 299a73a2…b65307 | Actualizaciones de MariaDB desde el panel |
| 0.71.305 | 02/10/2026 | Stable | 7aaf126 | 17d81343…469721 | Revendedores según el plan |
| 0.71.304 | 02/10/2026 | Stable | 860bb18 | db473580…09d19d | Avisos de restauración |
| 0.71.303 | 02/10/2026 | Stable | 27eeb74 | a45f032b…326848 | Migración remota desde cPanel |
| 0.71.302 | 02/10/2026 | Stable | cf04ade | 834e2036…7b11ad | Reintentos de tareas automáticas |
| 0.71.301 | 02/10/2026 | Stable | 3212ef2 | 0d4fbf56…7faafd | Permisos de escritura de los sitios, reenvíos reales |
| 0.71.300 | 02/10/2026 | Stable | b98292b | 65437121…c39bb6 | Migración completa desde backups de cPanel |
| 0.71.299 | 02/10/2026 | Stable | c5aef85 | 22f539c8…e782f5 | PHP 7.4 en servidores existentes |
| 0.71.298 | 02/10/2026 | Stable | f3b755f | 41d1e92a…19ab70 | PHP 7.4 |
| 0.71.297 | 02/10/2026 | Stable | f53f63a | 37a8428d…137a98 | Inglés, ver contraseñas, SSL del hostname |
| 0.71.296 | 02/10/2026 | Stable | f66c309 | 78cbe0d0…f65719 | Instalador: CSF |
| 0.71.295 | 01/10/2026 | Stable | 59d2cb2 | eff7cc47…2d0a12 | Descargas desde imnovapanel.net, instalador de un comando, aviso de licencia, suspensión de sitios por licencia suspendida, verificación de licencias reforzada |
| 0.71.294 | 30/09/2026 | Staging: validada en un servidor de pruebas; reemplazada por la 0.71.295 | fedde99 | 51dc0722…51d9b0 | Actualización de seguridad crítica |
| 0.71.293 | 29/09/2026 | Stable (producción). Debe reemplazarse por la 0.71.294 | — | 49bb444d…b96997 | Logo oficial |
| 0.71.292 | 27/09/2026 | Stable | — | db3dcb69…8e90 | Dashboard del cliente |
| 0.71.290 | 27/09/2026 | Stable | — | 542cb802…53da63d | Dashboard 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.
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.bro.co.uk: el panel registraba en Let's Encrypt el correoadmin@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 nameen cada recarga, y la zona DNS del hostname incluyewebmail.
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-updatepara 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-php74para 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-hostnameya 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
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 doctorinforma 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_FAILEDyPermission 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:2087yhttps://dominio:2083muestran 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,7zyunar, 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
appsylogsde la cuenta se reparan con el propietario correcto (errorstatus=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/.binantes de compilar (errortsc: 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
Forbiddendespué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.
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.
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