> For the complete documentation index, see [llms.txt](https://doc.velneo.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.velneo.com/38/aplicacion-vlanzadera-y-login-social/configuracion-de-vlanzadera-en-el-cloud-de-velneo.md).

# Configuración de vLanzadera en el Cloud de Velneo

En el Cloud de Velneo la lanzadera se sirve **desde el propio** [**Velneo vServer**](/38/velneo-vserver/que-es-velneo-vserver.md). El Apache del cloud ya está delante haciendo de proxy y su reenvío lo configura la plataforma, así que solo hay que instalar la aplicación, darle su clave JWT y publicarla en una ruta.

{% hint style="info" %}
También puede servirse con Velneo vModApache, declarándola en la configuración de Apache. Funciona y tiene soporte, pero ya no hace falta para ningún escenario: si aun así es lo que prefieres, está en el anexo.
{% endhint %}

Hace falta tener activada la **licencia de servicio HTTP**: sin ella el servidor responde con un error de acceso denegado al pedir la lanzadera.

## Paso 1 - Instalar la vLanzadera y su clave JWT

1. Sigue la sección de instalación de vLanzadera.
2. Edita `.config/Velneo/vServer.conf` conectándote por [sftp](/38/velneo-cloud/panel-de-control-vserver-cloud/sftp.md) y añade la clave, si no la tienes ya:

```
jwtKey=TU_CLAVE_JWT_DE_32
```

3. Reinicia Velneo vServer.

La clave debe tener **32 caracteres como mínimo**. Opcionalmente puedes limitar la validez del token:

```
jwtExpiredSeconds=NUMERICO_SEGUNDOS
```

El servidor acepta el token durante ese tiempo más 60 segundos de cortesía, por si hay desviación de hora entre cliente y servidor. Por defecto, 60 segundos.

{% hint style="danger" %}
La clave JWT solo debe conocerla el administrador.
{% endhint %}

## Paso 2 - Publicar la lanzadera en una ruta

En Velneo vAdmin, sección [**Web**](/38/velneo-vadmin/web.md) del menú lateral, está el virtual host que trae la plataforma, como **(Cloud) Puerto proxy: ... (TLS/SSL)**, con el puerto, el dominio y SSL deshabilitados: no hay nada que crear ni que cambiar ahí.

Haz doble clic sobre él y, en la pestaña **Rutas**, añade una:

| Campo         | Valor                            | Ejemplo          |
| ------------- | -------------------------------- | ---------------- |
| **Ruta**      | `/auth`                          | `/auth`          |
| **Instancia** | La instancia de la vLanzadera    | `VLANZADERA_APP` |
| **Usuario**   | El usuario con el que se ejecuta | `velneo`         |
| **Tipo**      | App                              | App              |

Acepta y **reinicia el servidor HTTP** desde la barra de herramientas de la sección **Web**.

{% hint style="danger" %}
**La ruta tiene que ser `/auth`.** La página de la lanzadera pide el token de acceso a `/auth/get_tok`, con la ruta escrita tal cual, así que en cualquier otra la lanzadera carga y se ve bien, pero al pulsar una aplicación falla con un error de comunicación. Los favoritos, igual.
{% endhint %}

**Comprobar:** `https://tu-dominio/auth` carga la lanzadera. Esa es la dirección que hay que repartir a los usuarios.

* En el mismo virtual host puedes publicar otras aplicaciones añadiendo más rutas, esas sí con el nombre que quieras.
* **La raíz del dominio no sirve la lanzadera**, y no se puede cambiar: la plataforma la tiene redirigida a `/login`. Se entra por `/auth`.
* **No hay que abrir puertos ni configurar el proxy**: de eso se encarga la plataforma.
* Tampoco hay que configurar nada para las aplicaciones de escritorio web: vienen con la instalación de Velneo vServer y las sirve él mismo. Si importas un paquete desde los parámetros de la lanzadera, se sirve por la misma vía.

## Comprobación final

1. `https://tu-dominio/auth` carga la lanzadera.
2. Entras con un usuario y una aplicación arranca en el navegador.

**Si algo falla:**

| Síntoma                                        | Dónde mirar                                                             |
| ---------------------------------------------- | ----------------------------------------------------------------------- |
| Error de acceso denegado al pedir la lanzadera | La licencia de servicio HTTP                                            |
| **404** al pedir `/auth`                       | La ruta del paso 2, o el servidor HTTP sin reiniciar después de crearla |
| **404** en la raíz del dominio                 | Es lo normal en el cloud: se entra por `/auth`                          |
| La lanzadera carga pero no deja entrar         | La clave JWT, en `vServer.conf`                                         |

***

## Anexo: publicarla con Velneo vModApache

Solo si prefieres servir la página desde el Apache del cloud en lugar del servidor HTTP. La clave JWT del paso 1 hace falta igual; lo que cambia es que la lanzadera se declara a mano y no se publica como ruta.

1. Abre `/apache2/001-default-ssl.conf` por sftp.
2. Dentro de `<VirtualHost>`, antes de la etiqueta de cierre, añade el *location* de la instancia que has instalado:

```apacheconf
	<Location /auth>
		SetHandler velneo
		#VelneoMode SERVER
		Vrl vatps://usuario:contraseña@localhost:6900/VLANZADERA_APP
	</Location>
</VirtualHost>
```

3. Sustituye la `Vrl` por los datos de tu instancia.

La lanzadera queda publicada en `https://tu-dominio/auth`.

{% hint style="danger" %}
**No añadas ninguna cabecera para la vLanzadera.** Las emiten ya la propia lanzadera en su página —incluidas `Cross-Origin-Embedder-Policy` y `Cross-Origin-Opener-Policy`— y el servidor HTTP de Velneo vServer en las aplicaciones. Duplicadas, el navegador las descarta y las aplicaciones no arrancan.

Si vienes de una configuración anterior, **quita el `Include` de `vlanzadera.conf`** y el propio fichero: ya no existe y su contenido no hace falta.
{% endhint %}

* El reenvío de las aplicaciones de escritorio web al servidor HTTP ya viene configurado en el cloud: no hay que declarar `/login` ni `/velneoWASM`.
* **La raíz del dominio tampoco sirve la lanzadera por esta vía**, y no se puede cambiar desde aquí: la plataforma la tiene redirigida a `/login` y esa regla se aplica antes que cualquier `RewriteRule` que añadas. Si traes uno de la documentación anterior, quítalo: no hace nada.
* Si aparece un error de `SharedArrayBuffer` o `crossOriginIsolated`, son cabeceras declaradas en Apache: quita el `Include` de `vlanzadera.conf`.
