Instalación
Antes de comenzar
- Un servidor limpio con AlmaLinux 8, 9 o 10, o Rocky Linux 8, 9 o 10, y acceso root. El instalador se niega a correr sobre otra distribución. El panel administra web, correo, DNS, FTP, bases de datos y firewall por su cuenta, por lo que no convive con otro panel.
- Arquitectura x86_64. Como referencia práctica, 2 vCPU y 4 GB de RAM para un nodo chico (ClamAV, el antivirus de correo, mantiene unos 1,5 GB residentes y puede apagarse por nodo).
- El nombre de host del servidor resolviendo a su IP pública, si se desea un certificado real para el panel.
- Mantener abierta una segunda sesión SSH mientras el instalador configura el firewall.
Puertos
| Puerto | Uso |
|---|---|
| 22 | SSH / SFTP (el firewall siempre lo mantiene abierto) |
| 80, 443 | Sitios web |
| 25, 465, 587 | Correo: entrante, TLS implícito, envío autenticado |
| 143, 993 / 110, 995 | IMAP / POP3 (con y sin TLS implícito) |
| 53 | DNS |
| 21 y 30000-30100 | FTPS y rango pasivo |
| 2087 | Interfaz de administración (HTTPS) |
| 2083 | Interfaz de clientes (HTTPS) |
MariaDB y PostgreSQL (3306/5432) no se abren por defecto. Los contenedores de los clientes no abren ningún puerto en el host: el borde llega por un socket UNIX de root, y cada cliente tiene su propia red privada /24. El instalador deshabilita firewalld (no lo desinstala) porque el firewall del panel usa nftables.
Ejecutar el instalador
Como root, en el servidor nuevo:
curl --proto '=https' --tlsv1.2 -fsSL https://license.tnspanel.com/artefactos/estable/instalar.sh | bash
Es el canal estable. El script lleva embebidas la clave pública del proveedor, la suma de verificación y la dirección de su propio paquete: descarga el paquete por HTTPS, verifica la suma antes de abrirlo y se niega a continuar si no coincide. Para revisarlo antes de ejecutarlo, descargarlo con curl -fsSLO y correrlo con sudo bash instalar.sh; si ya se dispone del paquete, se indica con -artefacto <paquete>.tar.gz.
El instalador es idempotente: volver a ejecutarlo sobre un nodo en funcionamiento lo actualiza sin borrar la configuración.
Variables de entorno
| Variable | Valor por defecto | Significado |
|---|---|---|
PUERTO_ADMIN | 2087 | Puerto de la interfaz de administración |
PUERTO_CLIENTE | 2083 | Puerto de la interfaz de clientes |
FTP_PASIVO_DESDE / FTP_PASIVO_HASTA | 30000 / 30100 | Rango pasivo de FTP |
Al final, el instalador comprueba que el servicio del panel esté sirviendo y que SSH siga abierto en el nuevo conjunto de reglas del firewall. Si alguna comprobación falla, la instalación falla de forma explícita.
Primer ingreso
Al terminar, el instalador muestra una sola vez:
- el usuario
admin; - una contraseña generada;
- el secreto del segundo factor (TOTP) y los códigos de recuperación de un solo uso.
Deben copiarse en el momento: no se vuelven a mostrar. Luego se abre https://<nombre-de-host>:2087 y se ingresan la contraseña y el código de 6 dígitos de la aplicación de autenticación.
El segundo factor es obligatorio para administradores y revendedores y opcional para clientes. Mientras no se emita un certificado real para el nombre de host, el panel usa uno autofirmado y el navegador advierte en la primera visita. Los clientes ingresan por https://<nombre-de-host>:2083.
Primeros pasos
Desde Cuentas → Nueva cuenta, o por línea de comandos en el servidor:
panel cliente-crear acme
panel sitio-crear acme example.com www.example.com
panel estado
Actualizaciones
El panel se actualiza sólo cuando el administrador lo pide, nunca de forma silenciosa. Cada actualización se verifica con una firma Ed25519 y, si el panel no queda sirviendo, vuelve solo a la versión anterior.
Desinstalación
No existe un desinstalador automatizado. Se recomienda planificar la reconstrucción del servidor en lugar de una remoción en sitio.