Manual de XBI Panel
Guía completa para instalar, asegurar y gestionar tu servidor con XBI Panel — panel de administración y panel de usuario.
📘 Introducción
XBI Panel es un panel de control web para servidores Linux que reúne en una sola interfaz todo lo necesario para ofrecer hosting profesional: cuentas y paquetes, dominios, correo electrónico seguro, DNS, bases de datos, PHP multi-versión, seguridad (WAF), copias de seguridad, un auto-instalador de aplicaciones y un asistente con IA.
Está construido sobre tecnologías estándar (Apache, Nginx, Postfix, Dovecot, BIND9, PostgreSQL, MariaDB) y se ejecuta como una API en Go con una interfaz en Next.js. Hay dos paneles: el de administración (gestión global del servidor) y el de usuario (acotado a la cuenta de cada cliente).
🧰 Requisitos
- Sistema operativo: Debian 12 limpio (recomendado).
- Arquitectura: x86_64 / amd64.
- Recursos: 2 GB de RAM mínimo (4 GB+ recomendado) y 20 GB de disco.
- Red: IPv4 pública estática.
- Acceso: root por SSH.
- Licencia: clave de XBI Panel activa, validada por IP.
⚙️ Instalación
Conéctate como root y lanza el instalador. Es interactivo (elige idioma y pide la clave de licencia) y automatiza todo el aprovisionamiento.
curl -sO https://repo.bintelcom.com/install.sh && bash install.sh
Qué hace el instalador
- Valida la licencia contra WHMCS (por IP) y descarga el producto.
- Instala y configura Apache (backend 8181/8443), Nginx (frente 80/443), Postfix, Dovecot, BIND9, PostgreSQL, MariaDB, Redis y el cortafuegos.
- Compila un motor PHP de usuario en segundo plano (/opt/php) además del PHP del sistema.
- Aplica las migraciones de base de datos y arranca la API y la interfaz.
🚀 Primeros pasos
Acceder al panel
Entra por HTTPS en tu dominio (puerto 443). El usuario root inicia sesión con la contraseña del sistema operativo. Tras instalar o actualizar, vuelve a iniciar sesión.
Configurar el hostname y el HTTPS
En Configuración del Servidor → Cambiar Hostname, escribe el FQDN del panel y pulsa «Comprobar DNS». Cuando resuelva a la IP del servidor, aplícalo: el panel fija /etc/hosts, desactiva la gestión de cloud-init y emite el certificado Let's Encrypt sin interrumpir el servicio.
👥 Cuentas y paquetes
En Cuentas de Usuario gestionas las cuentas de hosting y los paquetes (planes con límites de disco, dominios, bases de datos, cuentas de correo, etc.).
- Crea una cuenta asignándole un paquete, un dominio principal y un usuario del sistema propio (aislado en /home).
- Suspende, reactiva o elimina cuentas; el borrado limpia dominios, buzones, bases de datos y ficheros (sin huérfanos).
- En Características de la cuenta activas funciones por cliente y configuras el Branding (marca blanca).
🌐 Dominios y PHP
Cada cuenta puede tener varios dominios y subdominios. El panel crea el vhost de Nginx (frente) y Apache (backend) y la raíz del sitio en /home del usuario.
PHP por dominio
Cada dominio o subdominio puede usar su propia versión de PHP (los motores compilados en /opt/php, no solo las del sistema). Desde PHP Settings editas el php.ini por dominio (genera un .user.ini) con un catálogo de directivas o personalizadas.
✉️ Correo electrónico
El correo usa Postfix (SMTP) y Dovecot (IMAP/POP3). Al crear una cuenta de correo se genera automáticamente DKIM (OpenDKIM) y se publican SPF, DKIM y DMARC en la zona DNS, completos y entrecomillados.
Por cada buzón
- Uso/cuota con barra, activar/desactivar y cambio de contraseña.
- Autologin al webmail Roundcube con un clic.
- «Configurar cliente»: datos IMAP/POP3/SMTP y perfil .mobileconfig para iPhone/iPad/Mac.
Más funciones
Reenvíos (forwarders), autorespondedores (vacaciones), filtros y estadísticas de entrega (pflogsumm). Si aún no hay tráfico, las estadísticas muestran un aviso en lugar de un error.
🌍 DNS
El DNS Manager gestiona las zonas con BIND9 (servicio named). Cada dominio obtiene su zona con los registros A, CNAME, MX y TXT, además de los SPF/DKIM/DMARC del correo.
🗄️ Bases de datos
El Gestor de BD soporta MySQL/MariaDB y PostgreSQL. Crea bases de datos y usuarios, y entra a phpMyAdmin con autologin desde el menú.
- Cada cliente ve solo sus bases de datos; el administrador las ve todas.
- phpMyAdmin se sirve desde una capa interna localhost, proxiada por el panel y protegida por sesión.
🛡️ Seguridad
WAF ModSecurity + OWASP CRS
Cortafuegos de aplicaciones web sobre Apache con el conjunto de reglas OWASP CRS. Configurable por dominio y subdominio (Activado / Solo detección / Desactivado / Heredar). Cada cambio pasa por apache configtest, así que nunca puede tumbar los sitios. Por defecto arranca en «Solo detección».
Acceso: Passkeys, 2FA y tokens de API
- Passkeys (WebAuthn): acceso con huella o Face ID; disponible cuando el panel se sirve por HTTPS con un dominio real. Para clientes y administradores.
- 2FA: verificación en dos pasos con app autenticadora.
- Tokens de API: autentican de verdad las llamadas y se restringen por recurso (leer / crear / borrar).
Aislamiento de paneles
El enrutado por rol es estricto: un cliente solo accede a /user/* y nunca al shell del administrador. Toda la identidad se deriva de la sesión (JWT).
💾 Copias de seguridad
El panel genera copias de seguridad descargables de las cuentas (ficheros, bases de datos y configuración). Desde el panel de usuario, cada cliente puede descargar las suyas.
Cuotas de disco
En Disk Quota puedes instalar y activar las cuotas de disco (/etc/fstab) y monitorizar el uso por cuenta.
📦 Auto-instalador (Soft Store)
El Soft Store ofrece más de 459 aplicaciones para instalar en un clic, incluido WordPress (con configuración automática de base de datos y wp-cli). Selecciona el dominio de destino y la app se despliega lista para usar.
🤖 Asistente IA y creador web
El panel incluye un asistente de IA que no ejecuta ningún modelo en tu servidor: solo reenvía las consultas por HTTPS a la nube (Claude, OpenAI o Gemini). El administrador configura una clave central con cuota por cliente; opcionalmente cada cliente puede usar su propia clave.
Creador de webs
El cliente describe la web que quiere y la IA genera y publica un sitio responsive en su dominio (con copia del anterior). Aislamiento estricto: el asistente solo actúa sobre la cuenta y los dominios del propio cliente, nunca sobre otros.
🔔 Notificaciones y comunicados
Avisos por WhatsApp (Meta Cloud API) y correo ante eventos: caídas de servicios o dominios, pedidos, aprovisionamientos, alarmas y 2FA. El administrador configura las credenciales centrales; el cliente solo recibe.
Comunicados
Desde Cuentas → Comunicados, el administrador envía mensajes a todos o a un cliente (panel, correo y WhatsApp), con nivel de importancia, programación para una fecha futura y descarte individual por cliente.
📊 Monitorización y logs
En Monitorización tienes métricas en tiempo real (carga, CPU, memoria, disco y red) con histórico, lista de procesos, puertos e interfaces. El Visor de Logs muestra los registros del sistema y por dominio (Apache/Nginx de acceso y error) sin necesidad de SSH.
⬆️ Actualizaciones
El panel comprueba si hay una versión más nueva y permite actualizar con un clic. La auto-actualización corre en la ventana de medianoche o manualmente. Las contraseñas y la sesión se conservan entre actualizaciones.
🧑💻 Panel de usuario
Cada cliente final tiene su propio panel, acotado a su cuenta. Incluye: dominios y subdominios, correo (cuentas, reenvíos, autorespondedores, filtros), bases de datos MySQL y PostgreSQL, ajustes de PHP (.user.ini), SFTP, Git, antivirus (ClamAV), Cloudflare, copias de seguridad descargables, estado de ModSecurity, redirecciones web y notificaciones.
Todo está limitado a los recursos propios del cliente: dominios, carpetas /home y bases de datos suyas. El asistente IA y el creador web también están confinados a su cuenta.
❓ Resolución de problemas
El navegador dice que el certificado no es válido
Probablemente estás entrando por https://...:3001 (HTTP plano) o el certificado aún es autofirmado. Entra por https://tu-dominio (443) y, si hace falta, emite Let's Encrypt desde «Cambiar Hostname» cuando el DNS apunte al servidor.
«Cambiar Hostname» da error por HTTPS
Resuelto en 1.0.83: la renovación del certificado ya no interrumpe el servicio web. Asegúrate de estar actualizado.
Tras actualizar no puedo entrar («Credenciales inválidas»)
Resuelto en 1.0.83: el instalador ya no rota la contraseña de la base de datos en cada actualización. En instalaciones antiguas, contacta con soporte para realinear la clave.