Gestión de Hosting Compartido

NoxPanel integra un módulo de hosting compartido que permite gestionar sitios web, dominios, DNS, correo electrónico, FTP, bases de datos y certificados SSL desde una única interfaz.

Note

Para acceder al módulo de hosting necesitas el permiso can_access_hosting y pertenecer a un tenant con un paquete de hosting activo.

Dashboard del panel de hosting

Acceso

El dashboard de hosting se encuentra en /hosting/. Desde allí puedes gestionar todos los recursos asociados a tu cuenta:

  • Sitios web — Crear, listar y eliminar sitios

  • Bases de datos — MySQL gestionadas automáticamente

  • Dominios y DNS — Zonas DNS con registros A, AAAA, CNAME, MX, TXT, etc.

  • Correo electrónico — Buzones, alias y dominios de email

  • FTP — Cuentas FTP vinculadas a sitios

  • SSL — Certificados Let’s Encrypt, personalizados o autofirmados

  • Gestor de archivos — Explorador de archivos integrado

Descripción General

Cada usuario pertenece a uno o más tenants (organizaciones). Cada tenant tiene un paquete de hosting que define cuotas:

  • Número máximo de sitios web

  • Número de bases de datos

  • Almacenamiento total en GB

  • Buzones de correo, alias, cuentas FTP, usuarios shell

Puedes ver tu uso actual y cuotas disponibles desde el dashboard principal.

Warning

Si alcanzas la cuota máxima de un recurso, no podrás crear nuevos elementos hasta que se libere espacio o el administrador amplíe tu plan.

Funcionalidades

Crear un Sitio Web

  1. Accede a /hosting/sites/create/ o pulsa «Nuevo Sitio» en el dashboard.

  2. Rellena el formulario con el dominio deseado.

  3. El sistema provisionará el sitio automáticamente en el motor de hosting.

# Ejemplo via API REST — crear un sitio web
curl -X POST https://tu-dominio.com/hosting/api/rest/sites/ \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "ejemplo.com",
    "ip_address": "*",
    "ssl_enabled": true
  }'

El sitio se creará con un document_root automático y estará disponible en pocos minutos.

Gestionar DNS

Desde la sección de DNS puedes administrar las zonas y registros de tus dominios.

Tipos de registro soportados:

Tipo

Nombre

Uso

A

IPv4 Address

Apuntar dominio a una dirección IP

AAAA

IPv6 Address

Apuntar dominio a una dirección IPv6

CNAME

Canonical Name

Alias de un dominio a otro

MX

Mail Exchange

Servidor de correo del dominio

TXT

Text Record

SPF, DKIM, verificación de dominio

SRV

Service

Localizar servicios (ej: SIP, XMPP)

CAA

Certificate Authority

Autoridades permitidas para emitir SSL

# Ejemplo — crear un registro DNS tipo A
curl -X POST https://tu-dominio.com/hosting/api/rest/dns-records/ \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "zone": 1,
    "record_type": "A",
    "name": "www",
    "data": "203.0.113.50",
    "ttl": 3600
  }'

Note

Los cambios de DNS pueden tardar hasta 24-48 horas en propagarse globalmente, aunque normalmente se aplican en minutos.

Correo Electrónico

El sistema permite gestionar dominios de correo, buzones y alias.

Crear un buzón de email:

  1. Primero asegúrate de que el dominio de correo está creado.

  2. Ve a la sección de buzones y crea uno nuevo.

# Crear un dominio de correo
curl -X POST https://tu-dominio.com/hosting/api/rest/mail-domains/ \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"domain": "ejemplo.com"}'

# Crear un buzón
curl -X POST https://tu-dominio.com/hosting/api/rest/mailboxes/ \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "mail_domain": 1,
    "email": "info@ejemplo.com",
    "local_part": "info",
    "name": "Contacto",
    "quota_mb": 500,
    "imap_enabled": true,
    "pop3_enabled": true,
    "smtp_enabled": true
  }'

Alias de correo permiten redirigir emails de una dirección a otra sin crear un buzón adicional:

# Crear un alias de email
curl -X POST https://tu-dominio.com/hosting/api/rest/mail-aliases/ \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "mail_domain": 1,
    "source": "ventas@ejemplo.com",
    "destination": "info@ejemplo.com"
  }'

Cuentas FTP

Cada sitio web puede tener una o más cuentas FTP asociadas. Las cuentas FTP están vinculadas a un directorio del sitio.

# Crear una cuenta FTP
curl -X POST https://tu-dominio.com/hosting/api/rest/ftp-accounts/ \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "site": 1,
    "username": "deploy_user",
    "password": "contraseña_segura",
    "directory": "/web",
    "quota_mb": 1024
  }'

Tip

Utiliza cuentas FTP separadas para cada desarrollador o servicio que necesite acceso, con directorios restringidos.

Bases de Datos MySQL

Puedes crear bases de datos MySQL asociadas a tu tenant.

  1. Accede a /hosting/databases/ o usa la API.

  2. Cada base de datos tiene su usuario y contraseña propios.

# Crear una base de datos
curl -X POST https://tu-dominio.com/hosting/api/rest/databases/ \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "mi_app_db",
    "db_user": "mi_app_user",
    "db_password": "contraseña_segura"
  }'

Certificados SSL

NoxPanel soporta tres tipos de certificados SSL:

  • Let’s Encrypt — Gratuito, auto-renovable (recomendado)

  • Personalizado — Sube tu propio certificado PEM

  • Autofirmado — Para entornos de desarrollo

# Solicitar certificado Let's Encrypt
curl -X POST https://tu-dominio.com/hosting/api/rest/ssl-certificates/ \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "site": 1,
    "cert_type": "letsencrypt",
    "domain": "ejemplo.com",
    "auto_renew": true
  }'

Warning

Para emitir un certificado Let’s Encrypt, el dominio debe apuntar correctamente al servidor y el puerto 80 debe estar accesible para la verificación HTTP.

Gestor de Archivos

El gestor de archivos integrado está disponible en /hosting/files/. Permite:

  • Navegar por los directorios de tus sitios web

  • Subir archivos directamente desde el navegador

  • Editar archivos de texto online

  • Crear carpetas y archivos

  • Eliminar archivos y directorios

Note

El gestor de archivos está aislado por tenant: solo puedes ver y modificar los archivos de los sitios que pertenecen a tu organización.

Usuarios Shell (SSH)

Si tu paquete lo permite, puedes crear usuarios shell para acceder vía SSH al servidor:

# Crear un usuario shell
curl -X POST https://tu-dominio.com/hosting/api/rest/shell-users/ \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "site": 1,
    "username": "admin_ssh",
    "shell": "/bin/bash"
  }'

Notas

  • Todos los endpoints de la API REST se encuentran bajo /hosting/api/rest/.

  • La autenticación se realiza mediante tokens JWT (cabecera Authorization: Bearer <token>).

  • Los recursos están aislados por tenant: cada usuario solo ve y gestiona los recursos de su organización.

  • Los paquetes de hosting definen las cuotas máximas. Contacta con el administrador para ampliar límites.

  • Los cambios en el motor de hosting se aplican de forma asíncrona; algunos pueden tardar unos minutos en estar activos.

See also