Manual / Dashboard Inicio

~/manual $ man tecxpanel

Manual de TecXPaneL

Qué hace y cómo funciona cada sección del panel, con requisitos, flujos de uso y avisos honestos. Usa la barra lateral para navegar por las opciones del VPS.

General

Dashboard

La pantalla de inicio: el estado de tu servidor de un vistazo, en tiempo real.

Dashboard de TecXPaneL

Qué muestra

  • CPU, RAM, disco y red con gráficas que se refrescan cada 2 segundos vía WebSocket, sin recargar la página.
  • Servicios del sistema (Nginx, MySQL, PostgreSQL, Redis, SSH…) con su estado y un interruptor para arrancarlos o detenerlos.
  • Procesos top ordenados por consumo, con su PID, CPU% y memoria.

Cómo funciona

Los datos llegan por una conexión WebSocket permanente (/ws/stats) que empuja las métricas desde el servidor. El control de servicios usa systemctl por debajo; cada acción queda registrada en la auditoría.

Consumo: el panel entero funciona por debajo de 30 MB de RAM en reposo — las gráficas en vivo no añaden carga apreciable.
General

Terminal SSH

Una consola real dentro del navegador, como si estuvieras conectado por SSH.

Cómo funciona

Pulsa Conectar para abrir la sesión. La terminal usa node-pty en el servidor y un WebSocket (/ws/terminal) para el ida y vuelta, así que soporta colores, autocompletado, editores a pantalla completa (nano, vim) y todo lo que harías en una terminal normal.

  • Ejecuta cualquier comando con los permisos del usuario que corre el panel.
  • Ideal para tareas puntuales que aún no tienen su propia pantalla en el panel.
Solo Linux: la terminal interactiva depende de node-pty y del sistema del VPS; en un entorno de desarrollo Windows lanza un error controlado.
General

Logs del sistema

Registros en vivo y trazabilidad de todo lo que ocurre en el panel.

Qué incluye

  • Logs de Nginx (acceso y error) y del sistema, para diagnosticar sitios y servicios.
  • Registro de auditoría del panel: cada acción que modifica algo (inicios de sesión, crear/borrar sitios, apps, bases de datos, cambios de firewall…) queda anotada con usuario, IP y fecha.

Para qué sirve

Es tu primera parada cuando algo no va: revisa el error de Nginx si un sitio da 502, o consulta la auditoría para saber quién cambió qué y cuándo.

Servicios

Sitios web

Crea y activa vhosts de Nginx sin escribir configuración a mano.

Tipos de sitio

  • HTML estático — páginas simples o el build de cualquier herramienta.
  • PHP (PHP-FPM) — WordPress, Laravel y cualquier app PHP, con selector de versión de PHP-FPM.
  • React / SPA — sirve el estático con fallback a index.html para el enrutado del cliente.
  • Node.js / Python — crea un proxy inverso de Nginx hacia el puerto donde escucha tu app.

Cómo funciona

Al crear un sitio, el panel genera el bloque de Nginx, lo valida con nginx -t y recarga el servicio. Tú solo indicas el dominio y el tipo.

  1. Ve a Sitios web → Nuevo sitio, escribe el dominio (apuntado por DNS a tu VPS) y elige el tipo. Sin dominio, marca «Acceso por IP:Puerto» y el panel asigna uno.
  2. Sube los archivos con el Gestor de archivos, o usa Aplicaciones si necesitas build y proceso vivo.
  3. Emite el certificado SSL con un clic desde la sección SSL para forzar HTTPS.
¿Sitios o Aplicaciones? Para estático o PHP, Sitios web basta. Para algo que necesita un proceso vivo (Node/Python con build, reinicio y logs), usa Aplicaciones y deja que PM2 lo gestione.
Servicios

Aplicaciones

Un pipeline de despliegue completo sobre PM2: del código a producción en unos clics.

Sección de aplicaciones sobre PM2

Cómo funciona

El flujo es: crear el proyecto → subir el código → instalar dependencias → compilar → arrancar → configurar el proxy de Nginx. El panel detecta el tipo de proyecto y sugiere los comandos de install, build y start.

Cómo subir el código

  • Archivo comprimido — sube un .zip o .tar.gz y el panel lo extrae.
  • Clonado desde Git — indica repositorio y rama; el panel lo clona y genera un webhook de auto-deploy. Cada git push dispara pull → instalar → build → reinicio (el webhook usa un secreto único por app).

Por tecnología

  • Node.js — detecta el gestor (npm/yarn/pnpm), instala y arranca con npm start o el entry del package.json.
  • TypeScript — instala, compila y arranca el resultado transpilado.
  • React / Next.js — compila (npm run build) y sirve el resultado; detecta Next y avisa si intentas arrancar sin compilar.
  • Python — aísla cada app en su propio virtualenv (.venv) y distingue servicio web (Flask/FastAPI con puerto y proxy) de worker/bot sin puerto (p. ej. un bot de Telegram), donde eliges el script .py de arranque.
El comando de arranque es editable: si el proceso no levanta, corrige el comando y reinicia. En apps con Git, tu comando editado se preserva entre despliegues automáticos. Las variables de entorno se gestionan en el archivo .env desde el propio panel.
Servicios

Bases de datos

MySQL/MariaDB y PostgreSQL con usuario y contraseña seguros generados por ti.

Cómo funciona

Crea una base de datos con un clic: el panel genera automáticamente un usuario y una contraseña robusta. Las contraseñas se guardan cifradas en reposo (AES-256-GCM) y puedes revelarlas o copiarlas con el botón del ojo.

  • Requisito: el motor debe estar instalado. Si no lo hiciste en el setup, instálalo desde Plugins.
  • phpMyAdmin (puerto 8081) y Adminer (puerto 8082, gestiona MySQL y PostgreSQL) se instalan desde Plugins para administrar visualmente.
Cifrado: la clave de cifrado deriva de TXPL_SECRET_KEY o JWT_SECRET. Guarda tu .env: sin esa clave no se pueden descifrar las contraseñas almacenadas.
Servicios

Docker

Gestión completa de contenedores hablando directo con el socket del daemon, sin CLI ni SDK.

Gestión de contenedores Docker

Qué puedes hacer

  • Gestionar contenedores — listarlos con su estado y puertos, arrancar, detener, reiniciar, eliminar y ver sus logs en vivo.
  • Crear un contenedor desde una imagen del registro o compilando un Dockerfile (con la salida de build en directo), definiendo puertos, variables de entorno, volúmenes persistentes y, opcionalmente, dominio con proxy Nginx + HTTPS.
  • Desplegar desde código — sube un .zip/.tar.gz, elige plantilla (Node, Python, Dockerfile a medida) y el panel construye la imagen y levanta el contenedor.
  • Editor de Dockerfile y docker-compose — escribe tu docker-compose.yml y despliega (docker compose up -d) sin salir del navegador.
Requisito: Docker instalado (un clic desde Plugins). Es la misma base sobre la que corren Workflows (n8n) y Correo.
Servicios

Workflows (n8n)

Automatiza flujos con n8n integrado, sin instalarlo ni administrarlo a mano.

Workflows con n8n

Flujo de uso

  1. Pulsa Instalar n8n. El panel descarga la imagen y crea el contenedor txpl-n8n con volumen persistente n8n_data, mostrando el progreso de descarga en directo.
  2. Abre n8n (botón Abrir en n8n, apuntando a la IP + puerto o a tu dominio), crea tu cuenta y genera tu API key en Settings → API.
  3. Pega la API key en el asistente: se valida contra n8n y se guarda cifrada. No hace falta indicar ninguna URL.
  4. Desde el dashboard de Workflows: lista tus workflows y su estado, actívalos/desactívalos, revisa las ejecuciones recientes y abre el editor con un clic.
Editar siempre se hace en la interfaz propia de n8n (enlace directo). El panel actúa como control y monitorización, hablando con n8n de forma segura por loopback. Requiere Docker.
Servicios

Copias de seguridad

Backups gestionados con restauración granular estilo Plesk y destinos remotos cifrados.

Qué puedes respaldar

  • Bases de datos MySQL/PostgreSQL (dump individual por BD).
  • Sitios web de /var/www con su configuración.
  • Aplicaciones (código + .env + PM2).
  • Config del panel (base de datos SQLite + .env).

Cómo funciona

  1. Pulsa Backup ahora para un snapshot completo, o respalda un recurso concreto. Cada backup es un .tar.gz con un manifest.json que describe su contenido.
  2. Para restaurar, elige todo el backup o una pieza suelta: el panel crea primero un snapshot de seguridad de lo que va a sobrescribir y luego aplica la restauración.
  3. Configura la programación (diario/semanal, hora y retención): se instala una tarea de cron que ejecuta el backup automáticamente.

Destinos remotos (S3-compatible / SFTP)

Con rclone puedes replicar los backups fuera del VPS (S3, Backblaze B2, Wasabi, MinIO, DigitalOcean Spaces, SFTP…). En la tarjeta Destino remoto eliges tipo y credenciales, activas cifrado con tu passphrase (modo crypt) y activas subida automática para replicar cada backup nuevo.

Guarda la passphrase fuera del VPS. Si activas el cifrado y pierdes el servidor por completo, sin la passphrase no podrás descifrar los backups remotos. Las credenciales se guardan cifradas y se pasan a rclone por variables de entorno, nunca por rclone.conf en disco.
Sin cifrado remoto, los backups locales incluyen el .env y los dumps sin cifrar dentro del .tar.gz: transfiérelos por canales seguros.
Servicios

Tareas programadas (Cron)

Gestiona el cron del servidor desde la UI, sin editar el crontab a mano.

Qué puedes hacer

  • Crear tareas con un comando y una programación guiada: presets «cada hora», «cada día a las HH:MM», «cada semana», «cada mes», o modo avanzado con los cinco campos cron.
  • Activar/desactivar una tarea sin borrarla, editarla y borrarla.
  • Consultar el log de salida de cada tarea (en /var/log/txpl/cron/<id>.log).
Convivencia: el panel gestiona solo las tareas creadas aquí (marcadas internamente en el crontab). Las líneas que pusiste a mano o las de otros módulos (como la programación de backups) se respetan y no se tocan.
Servicios

Correo

Un servidor de correo autohospedado con docker-mailserver, gestionado desde el panel.

Cómo funciona

El panel levanta un contenedor txpl-mail (Postfix + Dovecot + Rspamd + DKIM) por el socket de Docker y ejecuta el script setup dentro del contenedor para gestionar buzones, alias y DKIM. El contenedor es la fuente de la verdad; las contraseñas de buzón no se guardan en el panel.

  1. Pulsa Instalar: se descarga docker-mailserver, se crea el contenedor y se abren los puertos SMTP/IMAP (25/465/587/143/993) en el firewall.
  2. Indica el hostname (ej. mail.tudominio.com); el panel emite el certificado TLS con Certbot y lo monta en el contenedor.
  3. Crea buzones (con contraseña) y alias desde la UI.
  4. Genera el DKIM y añade en tu DNS los registros que el panel te muestra: MX, SPF, DKIM, DMARC (y el PTR/rDNS en tu proveedor de VPS).
El correo no funciona hasta que el DNS esté correcto (sobre todo MX y el PTR/rDNS). Enviar a Gmail/Outlook desde una IP de VPS nueva puede caer en spam hasta que la IP gane reputación. Requiere Docker y ~1 GB de RAM para el contenedor.
Servicios

DNS autoritativo

Convierte tu VPS en servidor DNS autoritativo con PowerDNS, como hacen Hostinger o Plesk.

Cómo funciona

PowerDNS se instala de forma nativa (apt), corre como servicio y escucha en el puerto 53. El panel lo gestiona por su API HTTP local con una clave cifrada, y proyecta a PowerDNS las zonas y registros que defines.

  1. Pulsa Instalar PowerDNS: se instala, se abre el puerto 53 y arranca el servicio.
  2. Configura tus nameservers ns1.tudominio.com y ns2.tudominio.com (ambos apuntando a la IP de este VPS).
  3. Añade tus dominios (zonas) y gestiona sus registros (A, AAAA, CNAME, MX, TXT).
  4. En tu registrador, crea los glue records que el panel te muestra y cambia los NS del dominio a los tuyos. El panel verifica si la delegación ya está activa (dig NS).
Los glue records y el cambio de nameservers siempre los haces tú en el registrador del dominio (es externo al VPS). Hasta que la delegación esté propagada, el DNS del panel no responderá para ese dominio en Internet.
Sistema

Archivos

Un gestor de archivos web para navegar, editar y subir sin tocar SSH.

Gestor de archivos

Qué puedes hacer

  • Navegar por el árbol de directorios, crear carpetas y archivos, renombrar y eliminar.
  • Editar archivos de texto directamente en el navegador (ideal para retocar el código de un sitio).
  • Subir con drag-and-drop y barra de progreso, y extraer comprimidos.
Path jail: las rutas se resuelven y validan (safePath()) para impedir salir del directorio base — no hay path traversal posible.
Sistema

Firewall UFW

Gestiona las reglas del firewall del servidor desde el panel.

Cómo funciona

Por defecto se abren los puertos 22 (SSH), 80 (HTTP) y 443 (HTTPS). Puedes añadir reglas para abrir otros puertos que necesiten tus apps, o cerrarlos. Los módulos que lo requieren (Correo, DNS) abren sus propios puertos automáticamente al instalarse.

Cuidado al cerrar el puerto 22 si es tu única vía de acceso por SSH: podrías dejarte fuera del servidor.
Sistema

SSL / HTTPS

Certificados SSL gratuitos de Let's Encrypt, con renovación automática.

Cómo funciona

El panel emite el certificado con Certbot y configura Nginx para forzar HTTPS. La renovación es automática.

  • Requisitos: un dominio apuntando a la IP del VPS y Certbot instalado (viene por defecto o se instala desde Plugins).
  • Se usa también para el hostname del correo y para los dominios de contenedores Docker con proxy.
Sistema

Plugins

Instala software del servidor sin tocar la terminal, con salida en directo.

Plugins del servidor

Disponibles

  • Docker — contenedores (base de Workflows y Correo).
  • phpMyAdmin (puerto 8081) y Adminer (puerto 8082) — gestores web de bases de datos.
  • Redis — caché en memoria.
  • Fail2Ban — protege SSH y otros servicios contra fuerza bruta.
  • Composer — gestor de paquetes PHP.
  • Certbot — certificados SSL.
  • rclone — cliente para copiar backups a S3/SFTP y demás.
Instalación no interactiva: cada plugin se instala en streaming; verás la salida del proceso en directo y el estado (instalado / no instalado) en su tarjeta.
Cuenta

Ajustes y seguridad

Tu cuenta del panel: contraseña, segundo factor y recuperación.

  • Contraseña — cámbiala cuando quieras (mínimo 8 caracteres; se guarda con bcrypt, 12 rondas). En el login hay un botón de ojo para mostrar/ocultar lo que escribes.
  • 2FA (TOTP) — activa un segundo factor compatible con Google Authenticator, Authy y similares escaneando un QR. Al iniciar sesión se pedirá el código de 6 dígitos.
  • Recuperación de contraseña — configura un email y una pregunta de seguridad para recuperar el acceso si la olvidas, sin depender de servicios externos.
Referencia

Instalación

De un VPS limpio a panel en marcha con un solo script.

En un VPS limpio (Ubuntu / Debian)

Como root o con sudo, clona el repositorio y lanza el instalador. Aprovisiona Node, Nginx, PM2, UFW y Certbot, genera un .env seguro con credenciales autogeneradas (openssl rand) y arranca el panel bajo PM2.

  1. git clone https://github.com/tecxion/tecxpanel.git && cd tecxpanel
  2. sudo bash txpl-setup.sh
  3. Al terminar, la consola imprime la URL de acceso y la contraseña de administrador autogenerada.

Instalación personalizada

Puedes predefinir variables antes de lanzar el instalador: ADMIN_USER, ADMIN_PASS, PANEL_DOMAIN, INSTALL_MYSQL, INSTALL_PG… y ejecutar con sudo -E bash txpl-setup.sh.

Actualizar

Desde el directorio del proyecto: sudo bash txpl-update.sh. Hace git pull, reinstala dependencias si cambiaron y recarga el panel con PM2 sin pérdida de servicio.

Solo en un VPS limpio: el instalador configura UFW, crea bloques de Nginx y modifica paquetes del sistema. Ejecútalo en un servidor recién creado para evitar conflictos.
Referencia

CLI txpl

Una herramienta de consola para administrar el panel desde el terminal del VPS.

Instalada en /usr/local/bin/txpl. Comandos principales:

  • txpl status — estado del panel, servicios y consumo.
  • txpl restart — reinicia el panel sin pérdida de servicio (PM2 reload).
  • txpl logs — registros del panel en vivo.
  • txpl panel:ssl <dominio> — configura el dominio e instala HTTPS.
  • txpl sites / txpl apps / txpl dbs — lista sitios, apps y bases de datos.
  • txpl backup / txpl backup:cron / txpl backup:list — copias de seguridad.
Referencia

Seguridad aplicada

Los principios que protegen el panel y tu servidor.

  • Zero shell interpolation — toda ejecución externa usa execFile con argumentos en arrays: sin inyección de comandos.
  • Cifrado en reposo — contraseñas de admin con bcrypt (12 rondas); secretos de BD, API keys y passphrases con AES-256-GCM.
  • Path jail — el gestor de archivos resuelve y valida rutas para bloquear el path traversal.
  • Protección contra ataques — cabeceras con helmet, rate limiting por IP y bloqueo temporal por fuerza bruta.
  • JWT + 2FA — tokens con expiración corta y segundo factor TOTP opcional.
  • Auditoría — cada acción relevante se registra con usuario, IP y fecha.
  • Sin secretos incrustados — el repositorio es público; cada instalación genera sus propias credenciales y las claves se piden en la UI y se guardan cifradas.
Multiplataforma para desarrollo: las funciones específicas de Linux (terminal, firewall, servicios, Nginx) lanzan errores controlados en Windows; la UI y la base de datos funcionan al 100% para probar.