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. .. image:: /_static/screenshots/05_hosting_dashboard.jpg :alt: Dashboard del panel de hosting :width: 100% :align: center | 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. .. code-block:: bash # Ejemplo via API REST — crear un sitio web curl -X POST https://tu-dominio.com/hosting/api/rest/sites/ \ -H "Authorization: Bearer " \ -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:** .. list-table:: :header-rows: 1 :widths: 15 35 50 * - 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 .. code-block:: bash # Ejemplo — crear un registro DNS tipo A curl -X POST https://tu-dominio.com/hosting/api/rest/dns-records/ \ -H "Authorization: Bearer " \ -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. .. code-block:: bash # Crear un dominio de correo curl -X POST https://tu-dominio.com/hosting/api/rest/mail-domains/ \ -H "Authorization: Bearer " \ -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 " \ -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: .. code-block:: bash # Crear un alias de email curl -X POST https://tu-dominio.com/hosting/api/rest/mail-aliases/ \ -H "Authorization: Bearer " \ -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. .. code-block:: bash # Crear una cuenta FTP curl -X POST https://tu-dominio.com/hosting/api/rest/ftp-accounts/ \ -H "Authorization: Bearer " \ -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. .. code-block:: bash # Crear una base de datos curl -X POST https://tu-dominio.com/hosting/api/rest/databases/ \ -H "Authorization: Bearer " \ -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 .. code-block:: bash # Solicitar certificado Let's Encrypt curl -X POST https://tu-dominio.com/hosting/api/rest/ssl-certificates/ \ -H "Authorization: Bearer " \ -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: .. code-block:: bash # Crear un usuario shell curl -X POST https://tu-dominio.com/hosting/api/rest/shell-users/ \ -H "Authorization: Bearer " \ -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 ``). * 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. .. seealso:: - :doc:`quickstart` — Guía de inicio rápido - :doc:`billing` — Gestión de facturación y suscripciones - :doc:`tickets` — Sistema de tickets de soporte