El menú Instancias SaaS (/hosting/instances) está reservado a los administradores y al grupo HOSTING_OPERATORS. Una instancia SaaS es una instancia del software alojada por ZAPP para una organización: una pila Docker (aplicación y base de datos) en un host.
Declarar un host
Pantalla Hosts SaaS (/hosting/hosts):
- Código (p. ej.
docker-prod1) y nombre; - dirección interna: nombre o dirección IP por los que la VM de entrada llega a las instancias;
- interfaz de publicación: dirección IP interna del host en la que se publica el puerto de cada instancia, nunca una interfaz pública;
- dominio: las instancias del host se llaman
identificador.dominio; vacío, se aplica el ajuste globalHosting:DomainSuffix; - agente Outpost: identificador del agente instalado en el host (pantalla Outposts); el Portal actúa en el host solo mediante este agente;
- capacidad (número de instancias) y rango de puertos asignados a las instancias;
- recibe nuevas instancias: desmarcado, el host conserva sus instancias pero no recibe nuevas.
Controlar el host (lista de hosts) comprueba la versión de la herramienta del host y el almacenamiento fuera del host de las copias de seguridad (S3 de Scaleway, bucket zapp-hosting-backup, configurado una vez en el host por su administrador con install.sh --s3). La columna Último control muestra «Copias fuera del host» cuando el host tiene la herramienta v8 y un almacenamiento accesible; cada host se controla solo al menos una vez al día. Sin ese control correcto, una instancia de cliente del host no se puede actualizar ni eliminar.
Declarar la VM de entrada
Pantalla VM de entrada (/hosting/edges, botón desde Hosts SaaS): la VM de entrada recibe directamente el tráfico público de las instancias, en su propia dirección pública, lleva los certificados y lo envía al enrutador del host de cada instancia.
- Código (p. ej.
zapp-edge1), nombre y agente Outpost instalado en la VM; - dirección IPv4 pública (IP failover de la VM): destino de los dominios personalizados de los clientes; vacía, sin dominio personalizado;
- recibe las rutas de las nuevas instancias: una sola VM de entrada activa a la vez.
Mientras ninguna VM de entrada esté activa, el paso «Publicar en la VM de entrada» se omite: el nombre público de la instancia no lo enruta entonces ninguna VM de entrada. Resincronizar las rutas alinea la VM de entrada con todas las instancias cuya dirección está publicada: hazlo tras ponerla en servicio (para las instancias ya creadas) o tras una intervención manual. La columna Última resincronización muestra su resultado y el número de rutas en servicio.
Solicitar una instancia
Botón Solicitar una instancia: organización, producto (determina la imagen instalada y el producto de la licencia; lista del ajuste Hosting:ProductImages), tipo (cliente, entorno de pruebas de la Academia, demostración), identificador (de 3 a 40 caracteres, minúsculas, cifras y guiones; se convierte en el subdominio y ya no cambia), nombre mostrado, correo del administrador (primer administrador de la instancia: recibirá el enlace para elegir su contraseña), host (automático: el host activo menos cargado cuyo dominio corresponde), canal y, si hace falta, la versión o el digest exacto de la imagen. Una instancia de cliente siempre sigue el canal estable: se crea con una versión publicada (la versión actual de su producto, o la elegida), nunca con una nightly; una demostración o un entorno de pruebas sigue el canal nightly, salvo que elijas otro.
El dominio depende del tipo: una demostración o un entorno de pruebas va a un host cuyo dominio empieza por lab. (cliente.lab.zapphost.com), una instancia de cliente al host de producción (cliente.zapphost.com). Un host que no corresponde se rechaza.
La solicitud reserva el identificador, el host, un puerto libre y la dirección pública, y establece el plan de creación: fijar la imagen, preparar el host, emitir los certificados, escribir la pila, arrancarla, instalar la instancia, publicar la dirección, publicarla en la VM de entrada, licencia, controles finales. Cada paso aparece en la ficha de la instancia con su estado, sus intentos y un mensaje.
Puedes cancelar una solicitud cuya creación no ha empezado: el identificador y el puerto vuelven a quedar libres.
Iniciar la creación
En la ficha de una instancia solicitada, Iniciar la creación envía los pasos al host a través de su agente Outpost, uno a la vez; la ficha se actualiza cada minuto. Hoy el Portal ejecuta: fijar la imagen (canal estable: la versión publicada; canal nightly: etiqueta del ajuste Hosting:ImageTag, nightly por defecto, salvo digest impuesto), preparar el host, emitir los certificados, escribir la pila e iniciarla hasta el estado sano, instalar la instancia (se crea su administrador y se configura su servidor de correo), publicar la dirección (el router del host sirve https://identificador.dominio), la licencia (la instancia se vincula al Portal; una demostración o un lab recibe su licencia de prueba: todos los módulos, 2 puestos, 5 € de crédito de IA, 14 días) y los controles finales: la dirección pública debe responder «sano» y el administrador recibe el correo para elegir su contraseña. La instancia queda entonces lista. Una demostración o un lab cuya licencia no está cargada (una imagen de otro producto, por ejemplo) se detiene en error antes de ese correo.
Si el paso de instalación indica «SMTP non réglé», el host todavía no tiene las credenciales del servicio de envío: la instancia funciona, pero el administrador no recibe correo. Una instancia de cliente solo se vincula: su licencia viene de su pedido.
Si un paso falla, la instancia pasa a en error con el mensaje del host; Reintentar reanuda en el paso que falló.
El host debe haber sido preparado una vez por su administrador (herramienta zapp-hosting); si no, el primer paso falla con «¿herramienta instalada?». Una herramienta demasiado antigua para los pasos de instalación y publicación se señala con el comando de actualización.
Actualizar la imagen
En la ficha de una instancia lista o con error cuya pila ha arrancado, el recuadro Actualizar la imagen pasa la instancia a otra imagen del mismo producto: para una instancia del canal nightly, un digest preciso o la última imagen de una etiqueta (nightly por defecto); para una instancia del canal estable, una versión publicada. El Portal primero hace una copia de la base en el host, luego cambia la imagen y espera a que la aplicación esté sana; si la nueva imagen no lo está, el host vuelve solo a la anterior. Las etapas se añaden al registro de la ficha, y la imagen anterior sigue visible para volver atrás.
Si la creación de la instancia se había detenido con error (una licencia rechazada por una imagen demasiado antigua, por ejemplo), sus etapas restantes se retoman después de la actualización. Para una instancia de cliente, la copia de seguridad previa a la actualización se copia fuera del host (se guarda 60 días): la actualización solo se acepta si el host ha demostrado ese almacenamiento (Controlar el host), y se detiene si la copia falla.
Una instancia del canal estable (toda instancia de cliente) solo pasa a una versión publicada: el recuadro propone la versión actual de su producto y las dos anteriores (volver atrás), nunca una etiqueta ni un digest libres.
Versiones publicadas y canales
Pantalla Versiones publicadas (/hosting/releases, botón desde Instancias SaaS): una versión es una imagen estable fechada del registro (versión-stable.AAAAMMDD.commit), promovida por el workflow del producto y luego publicada por un administrador de ZAPP. Las imágenes nightly se purgan tras dos noches: nunca se publican.
- Publicar una versión (solo administradores de ZAPP): producto, número (por ejemplo
2026.11, único por producto), imagen estable fechada, notas de la versión en francés, inglés y español, y el host que descarga la imagen (automático: el primer host inscrito). El Portal fija el digest de la imagen y lee sus etiquetas de versión si las lleva; la versión pasa entonces a publicada y se convierte en la versión actual de su producto. Una imagen ya publicada con otro número se rechaza. - Retirar la versión: ya no se propone; las instancias que la tienen la conservan.
- Canal de una instancia: estable (solo versiones publicadas, obligatorio para un cliente) o nightly (última imagen de la etiqueta del ajuste
Hosting:ImageTag, para las demostraciones y los entornos de pruebas). En la ficha de una demostración o de un entorno de pruebas puedes cambiar de canal; la imagen en servicio no cambia, la próxima actualización sigue el canal. - La ficha de la instancia muestra su canal, su versión (o «fuera de versión publicada») y la versión actual de su canal.
Copias de seguridad
El recuadro Copias de seguridad de la ficha lista las copias de la instancia: fecha, motivo (diaria, a petición, antes de actualizar, final), estado, copia fuera del host y vencimiento. Una copia incluye la base de datos y los archivos de la instancia; el host guarda las tres últimas, y la copia fuera del host se envía a S3.
- Cada instancia de cliente lista se copia cada noche (ajuste
Hosting:Backup:HourUtc, una instancia a la vez por host); las demostraciones también si el ajusteHosting:Backup:Kindslas incluye. - Hacer una copia ahora lanza una copia fuera del host de la instancia lista.
- Vencimientos: 30 días (diaria, a petición), 60 días (antes de actualizar), 90 días (final); la última copia correcta de una instancia siempre se guarda.
- Los operadores del alojamiento reciben un aviso de una copia diaria fallida, y de una instancia de cliente sin copia fuera del host correcta desde hace 36 horas.
- La restauración (base de datos y archivos sustituidos por los de una copia) se hace por la API, reservada a los administradores de ZAPP: el host hace antes una copia de seguridad de precaución y vuelve solo al estado anterior si la instancia no arranca. La instancia queda en restauración durante la operación.
Dominio personalizado
Un cliente puede servir su instancia con su propio nombre de dominio (por ejemplo support.client.com). Es el administrador del cliente quien lo introduce en su instancia; el Portal comprueba el DNS y hace el resto. El recuadro Dominio personalizado de la ficha muestra el dominio, su estado, el registro DNS que hay que crear y, si hay un problema, el motivo; ZAPP también puede introducir ahí el dominio a petición del cliente.
- Registro que debe crear el cliente: un
CNAMEdel dominio hacia el nombre técnico de la instancia (identificador.dominio) o, para un dominio sin subdominio, unAhacia la dirección pública de la VM de entrada. - Activación: comprobación del DNS (con resolutores públicos), segundo nombre en el enrutador del host, dominio y certificado en la VM de entrada y, por último, comprobación de
https://dominio/healthdesde Internet. Después, la instancia pasa sola a ese nombre (enlaces de los correos incluidos). El nombre técnico sigue siempre activo. - Comprobar y reintentar vuelve a lanzar la comprobación del DNS pendiente, o reanuda una activación detenida (certificado aún no emitido, por ejemplo). Retirar el dominio lo quita de la VM de entrada y después del enrutador del host.
- Un dominio pertenece a una sola instancia; se rechazan los dominios del proveedor de alojamiento; 10 comprobaciones por hora como máximo. Los operadores del alojamiento reciben un aviso de cada activación y de cada retirada.
- Hace falta una VM de entrada activa con su dirección IPv4 pública (pantalla VM de entrada); al eliminar una instancia también se retira su dominio.
Eliminar una instancia
En la ficha de una instancia lista, con error o suspendida, el recuadro Eliminar la instancia elimina del host la pila, sus datos y su dirección, y luego retira la instancia del módulo Licencias (sus licencias se revocan). Es irreversible: escribe el identificador de la instancia para confirmar.
Las etapas de la eliminación se añaden al registro de la ficha: copia de seguridad final, eliminación del host, retirada de la licencia. Una demostración o un entorno de prueba no tiene copia de seguridad final. Para una instancia de cliente, la copia final es obligatoria y se copia fuera del host (se guarda 90 días): la eliminación solo se acepta si el host ha demostrado ese almacenamiento, y no se elimina nada si la copia falla.
Si una etapa falla, la instancia sigue en eliminación con el mensaje del host; Reintentar retoma la etapa que falló. Una vez eliminada, la instancia libera su identificador y su puerto; su ficha y su registro siguen disponibles (filtro «Eliminada» de la lista).
Estados de una instancia
Solicitada, en creación, lista, fallida, suspendida, en actualización, en restauración, en eliminación, eliminada. Una instancia eliminada libera su identificador y su puerto.