> La lista completa de artículos está en [llms.txt](https://docs.f3cloud.com/llms.txt). Cada página tiene versión en Markdown, basta con añadir .md a su dirección. Esta página en Markdown: [https://docs.f3cloud.com/es/vpn-guide/remnawave-installation.md](https://docs.f3cloud.com/es/vpn-guide/remnawave-installation.md).

# Cómo instalar Remnawave en un VPS con nodo y VLESS Reality

Instalación paso a paso del panel Remnawave en un VPS, con capturas de pantalla. Panel y nodo en servidores separados, Caddy con HTTPS, perfil VLESS Reality, host con la huella firefox, usuarios, suscripciones, cortafuegos, actualización y copias de seguridad.

**Remnawave** es un panel para gestionar servidores VPN basados en el núcleo Xray. Con él es fácil crear usuarios, repartirles suscripciones, limitar el tráfico y los plazos, y conectar varios servidores (nodos) a un mismo panel. El proyecto es gratuito, de código abierto y cuenta con [documentación oficial](https://docs.rw).

En este artículo hemos reunido la instalación completa, desde la elección de los servidores de F3 Cloud hasta la conexión del primer cliente. Los comandos proceden de la documentación oficial, y hemos hecho toda la instalación nosotros mismos con la versión 3.4.5 del panel, así que los nombres de los botones y las capturas coinciden con lo que verás. La configuración del cortafuegos, las copias de seguridad y los consejos de camuflaje los hemos añadido por nuestra cuenta.

### De qué se compone Remnawave

* **Panel** – la interfaz web y la API, la base de datos PostgreSQL y la caché Valkey. El panel en sí no transporta el tráfico de los usuarios.
* **Nodo** – un contenedor ligero con el núcleo Xray. Los usuarios se conectan precisamente a los nodos. El panel gestiona los nodos a través de una conexión protegida.
* **Página de suscripción** – un componente opcional. Muestra al usuario una página cuidada con instrucciones y oculta la dirección del panel.

> **El orden de instalación importa.**
>
> Mientras no haya ningún nodo conectado al panel, los usuarios no podrán conectarse. Por eso la instalación sigue siempre el mismo orden – panel, proxy inverso, nodo, perfil, host y usuarios.

***

### Qué necesitas

#### Dos servidores

Los desarrolladores recomiendan instalar el panel y el nodo en servidores distintos. En un mismo servidor, el panel y el nodo se pelearían por el puerto 443.\
Y si se bloquea la dirección IP del nodo, perderías también el acceso al panel.

| Función | Requisitos de Remnawave | Plan de F3 Cloud recomendado |
| --- | --- | --- |
| Panel | desde 2 núcleos y 2 GB de RAM, mejor 4 núcleos y 4 GB, disco de 20 GB | **DE-RZ9-2** (2 vCPU, 4 GB de RAM, 60 GB NVMe) |
| Nodo | desde 1 núcleo y 1 GB de RAM | **DE-Promo** para uso personal, **DE-RZ9-1** para un canal de 1 Gbit/s |

Instala **Ubuntu** o **Debian** en los dos servidores. Cómo contratar un servidor se explica en el artículo [sobre el pedido de un servidor virtual](https://docs.f3cloud.com/es/client-area/order-vps.md).

#### Dominio

Necesitarás dos registros A:

* `panel.tu-dominio.com` apunta a la dirección IP del servidor del panel;
* `cdn.tu-dominio.com` apunta a la dirección IP del servidor del nodo.

Un nombre aparte para el nodo te permite cambiar más adelante la dirección IP del servidor sin actualizar las suscripciones de los usuarios.

> **Elige nombres neutros.**
>
> No uses en el dominio ni en los subdominios palabras como vpn, proxy, xray, vless, reality, remnawave, node y similares. El nombre del servidor se transmite sin cifrar, y esas palabras son fáciles de detectar con una lista. Es mejor `cdn.example.com`, `photos.example.com` o el propio dominio sin subdominio.

> **Sobre Cloudflare.**
>
> La documentación de Remnawave aconseja pasar el dominio del panel por el proxy de Cloudflare si en tu región funciona de forma estable. Desde Rusia, los servicios de Cloudflare funcionan ahora con cortes, por eso recomendamos dejar el proxy desactivado (nube gris).\
> Para el dominio del nodo, el proxy debe estar siempre desactivado, ya que Reality solo funciona con una conexión directa al servidor.

***

### 1. Prepara los dos servidores

Conéctate a cada servidor por SSH, por ejemplo con [Termius](https://docs.f3cloud.com/es/vps/termius-connection.md), y ejecuta los mismos comandos.

```bash
# Actualizamos el sistema
apt update && apt upgrade -y

# Instalamos Docker con el script oficial
curl -fsSL https://get.docker.com | sh

# Comprobamos que Docker y el plugin Compose funcionan
docker --version && docker compose version
```

Si los dos comandos han mostrado sus versiones, Docker está listo.

<figure><img src="https://docs.f3cloud.com/img/remnawave-docker.png" alt="Versiones de Docker y Docker Compose"><figcaption><p>Docker y Compose instalados</p></figcaption></figure>

***

### 2. Instala el panel

Todos los comandos de este paso se ejecutan **en el servidor del panel**.

```bash
# Creamos la carpeta y descargamos los archivos oficiales docker-compose.yml y .env
mkdir /opt/remnawave && cd /opt/remnawave
curl -o docker-compose.yml https://raw.githubusercontent.com/remnawave/backend/refs/heads/main/docker-compose-prod.yml
curl -o .env https://raw.githubusercontent.com/remnawave/backend/refs/heads/main/.env.sample
```

Genera las claves secretas. El comando escribirá por sí solo valores aleatorios en el archivo `.env`.

```bash
sed -i "s/^APP_SECRET=.*/APP_SECRET=$(openssl rand -hex 64)/" .env && sed -i "s/^METRICS_PASS=.*/METRICS_PASS=$(openssl rand -hex 64)/" .env && sed -i "s/^WEBHOOK_SECRET_HEADER=.*/WEBHOOK_SECRET_HEADER=$(openssl rand -hex 64)/" .env
```

Cambia la contraseña de la base de datos. Los desarrolladores recomiendan encarecidamente no dejar la contraseña por defecto.

```bash
pw=$(openssl rand -hex 24) && sed -i "s/^POSTGRES_PASSWORD=.*/POSTGRES_PASSWORD=$pw/" .env && sed -i "s|^\(DATABASE_URL=\"postgresql://postgres:\)[^\@]*\(@.*\)|\1$pw\2|" .env
```

Abre el archivo `.env` con el comando `nano .env` e indica tu dominio en tres líneas.

```ini
FRONT_END_DOMAIN=panel.tu-dominio.com
PANEL_DOMAIN=panel.tu-dominio.com
SUB_PUBLIC_DOMAIN=panel.tu-dominio.com/api/sub
```

En `SUB_PUBLIC_DOMAIN` no escribas `https://` ni la barra final. Guarda el archivo con <kbd>Ctrl</kbd> + <kbd>O</kbd>.\
Cierra el editor con <kbd>Ctrl</kbd> + <kbd>X</kbd>.

Inicia el panel y mira el log de arranque.

```bash
docker compose up -d && docker compose logs -f -t
```

Cuando en el log aparezca el banner con la versión de Remnawave, el panel ya está en marcha. Sal de la vista del log con <kbd>Ctrl</kbd> + <kbd>C</kbd>, y los contenedores seguirán funcionando.

<figure><img src="https://docs.f3cloud.com/img/remnawave-panel-start.png" alt="Log de arranque del panel Remnawave con la versión 3.4.5"><figcaption><p>El panel se ha iniciado</p></figcaption></figure>

> **No expongas los servicios a internet.**
>
> Todos los servicios de Remnawave escuchan solo en la dirección `127.0.0.1` y no son accesibles directamente desde internet. No cambies esto en `docker-compose.yml`. Al panel solo se debe acceder a través del proxy inverso del siguiente paso.

> **Si has cambiado .env.**
>
> Después de cualquier cambio en `.env`, recrea los contenedores con `docker compose down && docker compose up -d`, porque un simple reinicio no basta.

***

### 3. Configura Caddy y HTTPS

Remnawave es compatible con Caddy, Nginx y Traefik. Lo más sencillo es configurar Caddy, porque obtiene y renueva por sí solo el certificado de Let's Encrypt.

```bash
# Creamos la carpeta y el archivo de configuración de Caddy
mkdir -p /opt/remnawave/caddy && cd /opt/remnawave/caddy && nano Caddyfile
```

Pega en el archivo la configuración de abajo, sustituyendo el dominio por el tuyo.

```text
https://panel.tu-dominio.com {
        encode
        reverse_proxy * http://remnawave:3000
}
:443 {
    tls internal
    respond 204
}
```

El segundo bloque responde con una página vacía a cualquier petición que no vaya a tu dominio, por ejemplo durante un escaneo por dirección IP.

Crea al lado un archivo `docker-compose.yml` para Caddy con el comando `nano docker-compose.yml` y pega en él lo siguiente.

```yaml
services:
  caddy:
    image: caddy:2.9
    container_name: 'caddy'
    hostname: caddy
    restart: always
    ports:
      - '0.0.0.0:443:443'
      - '0.0.0.0:80:80'
    networks:
      - remnawave-network
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy-ssl-data:/data

networks:
  remnawave-network:
    name: remnawave-network
    driver: bridge
    external: true

volumes:
  caddy-ssl-data:
    driver: local
    external: false
    name: caddy-ssl-data
```

Inicia Caddy.

```bash
docker compose up -d && docker compose logs -f -t
```

Pasado un minuto, abre `https://panel.tu-dominio.com` en el navegador. Debería aparecer la página de registro del panel con un certificado válido.

***

### 4. Registra al administrador

La primera vez que lo abras, el panel te propondrá crear una cuenta de superadministrador. **El primer usuario registrado se convierte en el administrador principal**, así que regístrate justo después de iniciar Caddy.

Elige un nombre de usuario y pulsa <kbd>Generate & copy</kbd> para que el panel cree una contraseña segura, y guárdala enseguida en un gestor de contraseñas. Después pulsa <kbd>Sign up</kbd>.

<figure><img src="https://docs.f3cloud.com/img/remnawave-register.jpg" alt="Página de registro del administrador de Remnawave"><figcaption><p>Registro del administrador principal</p></figcaption></figure>

> **Si has perdido el acceso al panel.**
>
> Puedes restablecer el administrador con la utilidad de recuperación integrada. Ejecuta en el servidor del panel el comando `docker exec -it remnawave cli`.

***

### 5. Conecta el nodo

En el **servidor del nodo**, crea una carpeta para él.

```bash
mkdir /opt/remnanode && cd /opt/remnanode
```

En el panel, abre la sección **Nodes** y pulsa <kbd>+</kbd>. Rellena el formulario:

* **Internal name** – cualquier nombre que te resulte claro, por ejemplo `DE-Frankfurt-1`;
* **Country** – el país del servidor, cuya bandera verán los usuarios;
* **Domain or IP** – la dirección del nodo, por ejemplo `cdn.tu-dominio.com`;
* **Node Port** – el puerto por el que el panel gestiona el nodo. Por defecto es `2222`.

<figure><img src="https://docs.f3cloud.com/img/remnawave-node-create.jpg" alt="Formulario de creación de un nodo en Remnawave"><figcaption><p>Creación de un nodo</p></figcaption></figure>

Pulsa <kbd>Copy docker-compose.yml</kbd>. El panel copiará un archivo ya preparado, más o menos como este.

```yaml
services:
  remnanode:
    container_name: remnanode
    hostname: remnanode
    image: remnawave/node:latest
    network_mode: host
    restart: always
    cap_add:
      - NET_ADMIN
    ulimits:
      nofile:
        soft: 1048576
        hard: 1048576
    environment:
      - NODE_PORT=2222
      - SECRET_KEY="clave del panel"
```

En el servidor del nodo, abre el editor con el comando `nano docker-compose.yml`, pega el contenido copiado, guarda el archivo e inicia el nodo.

```bash
docker compose up -d && docker compose logs -f -t
```

En el log aparecerá una tabla con el puerto de la API, la versión de Xray y las características del servidor. Eso significa que el nodo se ha iniciado y está esperando al panel.

<figure><img src="https://docs.f3cloud.com/img/remnawave-node-start.png" alt="Log de arranque del nodo Remnawave con la versión de Xray"><figcaption><p>El nodo se ha iniciado</p></figcaption></figure>

Vuelve al panel y pulsa <kbd>Next</kbd>. En el paso **Core configuration**, pulsa <kbd>Select</kbd> y marca de momento el perfil por defecto `Default-Profile`. El perfil de trabajo lo crearemos en el siguiente paso. Pulsa <kbd>Create node</kbd>. Al cabo de unos segundos aparecerá el mensaje «Connection successful. Xray Core is up and running!».

<figure><img src="https://docs.f3cloud.com/img/remnawave-node-ok.jpg" alt="Mensaje de conexión correcta del nodo"><figcaption><p>El panel se ha conectado al nodo</p></figcaption></figure>

> **Cierra el puerto del nodo a terceros.**
>
> El puerto del nodo solo lo necesita el panel. Permite conexiones a él únicamente desde la dirección IP del servidor del panel. Tienes los comandos en la sección «Cortafuegos», más abajo.

***

### 6. Crea un perfil VLESS Reality

Por defecto, el panel crea el perfil `Default-Profile` con una única conexión Shadowsocks. Para sortear los bloqueos, añade un perfil VLESS Reality.

1. Abre la sección **Config Profiles**, pulsa <kbd>+</kbd>, escribe un nombre para el perfil, por ejemplo `VLESS-Reality`, y pulsa <kbd>Create</kbd>. Se abrirá el editor del perfil.
2. Debajo del editor, junto al botón <kbd>Format</kbd>, pulsa el botón de menú y elige **Load from GitHub**.
3. Elige la plantilla **Example VLESS-TCP-REALITY config** y pulsa <kbd>Load template</kbd>. Ya incluye la conexión `VLESS_TCP_REALITY` en el puerto 443.

<figure><img src="https://docs.f3cloud.com/img/remnawave-template.jpg" alt="Selección de la plantilla VLESS-TCP-REALITY"><figcaption><p>Selección de la plantilla del perfil</p></figcaption></figure>

Nada más cargarla, el panel resaltará el error `please fill in a valid value for "target"`. Es normal, porque la plantilla todavía hay que completarla.

<figure><img src="https://docs.f3cloud.com/img/remnawave-profile.jpg" alt="Editor de perfiles con la plantilla de Reality cargada"><figcaption><p>Plantilla cargada, solo falta rellenar los campos de Reality</p></figcaption></figure>

Lo más sencillo es generar las claves de Reality directamente en el servidor del nodo.

```bash
# Creamos un par de claves Reality. Pega el valor PrivateKey en el campo privateKey
docker exec remnanode xray x25519

# Creamos un valor para el array shortIds
openssl rand -hex 8
```

En el bloque `realitySettings`, rellena estos campos:

* `privateKey` – el valor **PrivateKey** del primer comando;
* `shortIds` – el valor del segundo comando, dentro de los corchetes y las comillas;
* `target` y `serverNames` – la dirección del sitio de camuflaje y su nombre, tienes más detalles en el aviso de abajo.

En la parte inferior del editor debería aparecer el mensaje `Xray config is valid`. Pulsa <kbd>Save</kbd>.

> **No te hagas pasar por grandes sitios ajenos.**
>
> No pongas en `target` y `serverNames` sitios como google.com, microsoft.com o apple.com, porque es uno de los principales indicios por los que hoy se bloquean servidores. Lo más fiable es camuflarte con tu propio dominio mediante el esquema self-steal. Para ello, instala nginx en el servidor del nodo con un sitio en tu dominio, pon `127.0.0.1:8443` en `target`, tu dominio en `serverNames` y establece `xver: 0`. Tienes las instrucciones paso a paso en el artículo [sobre self-steal para VLESS Reality](https://docs.f3cloud.com/es/vpn-guide/reality-self-steal.md).

Solo queda activar la nueva conexión para el nodo y los usuarios.

1. En la sección **Nodes**, abre tu nodo, pulsa el botón de edición en el bloque **Core configuration**, marca el perfil `VLESS-Reality` y guarda el nodo.
2. Abre **Users → Internal Squads**, haz clic en `Default-Squad`, marca la casilla del perfil `VLESS-Reality` y guarda. Sin esto, los usuarios no recibirán la nueva conexión.

<figure><img src="https://docs.f3cloud.com/img/remnawave-squad.jpg" alt="Activación del perfil VLESS-Reality en un squad interno"><figcaption><p>El perfil VLESS-Reality activado en Default-Squad</p></figcaption></figure>

***

### 7. Crea un host

El host determina qué dirección y qué parámetros recibirán los usuarios en su suscripción.

1. Abre **Subscription → Hosts** y pulsa <kbd>+</kbd>.
2. Activa el interruptor **Host visibility**. Por defecto está desactivado, y un host así no entra en la suscripción.
3. En el campo **Remark**, escribe un nombre que entiendan los usuarios, por ejemplo «Alemania».
4. Haz clic en el bloque **No inbound selected**, marca `VLESS_TCP_REALITY` y confirma la selección. El puerto se rellenará solo.
5. En el campo **Address**, indica `cdn.tu-dominio.com`.
6. En el bloque **Options**, pulsa <kbd>Add</kbd>, elige **Fingerprint** e indica `firefox`.
7. Pulsa <kbd>Save</kbd>.

<figure><img src="https://docs.f3cloud.com/img/remnawave-host.png" alt="Formulario de nuevo host con la huella firefox"><figcaption><p>Host con la huella firefox</p></figcaption></figure>

> **Por qué firefox y no chrome.**
>
> Desde finales de 2025, los sistemas de filtrado de tráfico de los proveedores rusos (TSPU) evalúan una conexión TLS por varios indicios a la vez, que son la subred del hosting, el nombre del sitio (SNI) y la huella del cliente. La huella `chrome` viene por defecto en casi todas las aplicaciones y paneles VPN, por eso la combinación «huella de Chrome y dirección IP de centro de datos» se ha convertido para los filtros en un indicio fiable de proxy. Los usuarios cuentan que, con varias conexiones simultáneas con esa huella, la conexión se «congela» durante unos minutos, y que pasar a `firefox` lo soluciona.
>
> La huella `edge` también ayudaba antes, pero desde septiembre de 2026 es incompatible con las nuevas versiones de Xray. A partir de Xray 26.9.8 (incluido, por ejemplo, en 3X-UI 3.8.0 y posteriores), el servidor Reality solo acepta clientes con intercambio de claves poscuántico ML-KEM. El perfil `edge` de Xray corresponde al antiguo Edge 85 sin ML-KEM, y con él la conexión no llegará a establecerse. El perfil `firefox` es compatible con ML-KEM si la aplicación lleva el núcleo Xray 26.3.23 o posterior, así que mantén los clientes actualizados. Tampoco uses los valores `random` y `randomized`, porque pueden elegir un perfil sin ML-KEM.

***

### 8. Crea un usuario y una suscripción

1. Abre la sección **Users** y pulsa <kbd>+</kbd>.
2. Indica el **Username** sin espacios. Después no podrás cambiarlo.
3. Define el **Traffic limit**. El valor `0` significa sin límite.
4. Revisa la **Expiry date**, porque por defecto el panel pone un plazo de un día.
5. En el bloque **Internal squads**, marca `Default-Squad`.
6. Pulsa <kbd>Create</kbd>.

<figure><img src="https://docs.f3cloud.com/img/remnawave-user-create.jpg" alt="Formulario de creación de usuario con Default-Squad seleccionado"><figcaption><p>Creación de un usuario</p></figcaption></figure>

Abre el usuario que acabas de crear. En su ficha hay un campo **Subscription URL** con el formato `https://panel.tu-dominio.com/api/sub/identificador` y, al lado, un botón para copiarlo. Ese es el enlace que debes enviar al usuario.

<figure><img src="https://docs.f3cloud.com/img/remnawave-user.jpg" alt="Ficha del usuario con el enlace de suscripción"><figcaption><p>Ficha del usuario y enlace de suscripción</p></figcaption></figure>

***

### Conexión del cliente

Copia el enlace de suscripción de la ficha del usuario e impórtalo en la aplicación, como se muestra en las [instrucciones de importación](https://docs.f3cloud.com/es/vpn-guide/marzban-installation.md#paso-4.-conectate-a-la-vpn). La suscripción se actualiza sola, así que cuando cambies algo en el servidor, los usuarios no tendrán que volver a configurar nada.

***

### Cortafuegos

La documentación oficial no incluye comandos para el cortafuegos, así que te dejamos nuestra versión basada en UFW. Si has movido SSH a otro puerto, indícalo en lugar de `22`.

#### Servidor del panel

```bash
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
```

#### Servidor del nodo

```bash
# Sustituye IP_DEL_PANEL por la dirección IP del servidor del panel
ufw allow 22/tcp
ufw allow 443/tcp
ufw allow from IP_DEL_PANEL to any port 2222 proto tcp
ufw enable
```

El resto de medidas de protección se describen en el artículo [sobre cómo proteger el servidor de accesos no autorizados](https://docs.f3cloud.com/es/client-area/protect-vps-from-unauthorised-access.md).

***

### Página de suscripción (opcional)

Una página de suscripción aparte oculta a los usuarios la dirección del panel y les muestra las instrucciones de conexión. Puedes instalarla en el mismo servidor que el panel.

1. Añade un registro A para el dominio de la suscripción, por ejemplo `sub.tu-dominio.com`, e indícalo en la variable `SUB_PUBLIC_DOMAIN` del archivo `/opt/remnawave/.env`. Después recrea el contenedor del panel con el comando `cd /opt/remnawave && docker compose down remnawave && docker compose up -d`.
2. Crea un token en la sección **Remnawave Settings → API tokens**.
3. Crea la carpeta `/opt/remnawave/subscription` y, dentro de ella, el archivo `.env`.

```ini
APP_PORT=3010
REMNAWAVE_PANEL_URL=http://remnawave:3000
REMNAWAVE_API_TOKEN=token_del_panel
```

4. En la misma carpeta, crea el archivo `docker-compose.yml`.

```yaml
services:
  remnawave-subscription-page:
    image: remnawave/subscription-page:latest
    container_name: remnawave-subscription-page
    hostname: remnawave-subscription-page
    restart: always
    env_file:
      - .env
    ports:
      - '127.0.0.1:3010:3010'
    networks:
      - remnawave-network

networks:
  remnawave-network:
    driver: bridge
    external: true
```

5. Inicia la página con el comando `docker compose up -d` y añade un bloque nuevo a `/opt/remnawave/caddy/Caddyfile`.

```text
https://sub.tu-dominio.com {
        encode
        reverse_proxy * http://remnawave-subscription-page:3010
}
```

6. Reinicia Caddy con el comando `cd /opt/remnawave/caddy && docker compose down && docker compose up -d`.

***

### Actualización

Actualiza primero el panel y después los nodos.

```bash
# En el servidor del panel
cd /opt/remnawave && docker compose pull && docker compose down && docker compose up -d
docker image prune
```

```bash
# En el servidor del nodo
cd /opt/remnanode && docker compose pull && docker compose down && docker compose up -d
```

Si tienes instalada la página de suscripción, actualízala también con el mismo comando desde la carpeta `/opt/remnawave/subscription`.

***

### Copias de seguridad

Remnawave no tiene instrucciones oficiales para las copias de seguridad. Basta con guardar la base de datos y los archivos de configuración, ya que la caché Valkey no guarda en disco nada importante. Nosotros lo hacemos así.

```bash
cd /opt/remnawave
# Guardamos la base de datos en un archivo con la fecha de hoy
docker exec remnawave-db pg_dump -U postgres postgres > backup-$(date +%F).sql
# Guardamos los archivos de configuración en un archivo comprimido
tar czf remnawave-config-$(date +%F).tar.gz .env docker-compose.yml caddy/Caddyfile
```

Descarga las copias a tu ordenador o a otro almacenamiento, porque una copia en el mismo servidor no te servirá de nada si a este le pasa algo. Hablamos de las copias de seguridad con más detalle en un [artículo aparte](https://docs.f3cloud.com/es/client-area/protect-vps-from-unauthorised-access/backups.md).

***

### Problemas frecuentes

<details>

<summary>El panel no se abre</summary>

Comprueba que el registro A del dominio del panel apunta a la dirección IP del servidor. Después revisa los logs con el comando `docker compose logs` en las carpetas `/opt/remnawave` y `/opt/remnawave/caddy`. Si Caddy no ha podido obtener el certificado, el motivo aparecerá en su log.

</details>

<details>

<summary>El nodo no se conecta al panel</summary>

Asegúrate de que el puerto `2222` del servidor del nodo está abierto para la dirección IP del panel y de que `SECRET_KEY` se ha copiado completo en `docker-compose.yml`. Puedes ver el log del nodo con el comando `docker compose logs` en la carpeta `/opt/remnanode`.

</details>

<details>

<summary>El perfil no se guarda, error sobre target</summary>

El mensaje `please fill in a valid value for "target"` significa que en el bloque `realitySettings` no se han rellenado los campos de la plantilla. Rellena `target`, `serverNames`, `privateKey` y `shortIds` como se describe en el paso 6.

</details>

<details>

<summary>Error SPAWN_ERROR: xray</summary>

Xray no ha podido arrancar en el nodo con este perfil, casi siempre por un error en la configuración o por un puerto ocupado. Revisa el log de Xray con el comando `docker exec remnanode xlogs` y corrige el perfil.

</details>

<details>

<summary>El usuario no ve el servidor en la suscripción</summary>

Comprueba tres cosas. El perfil está activado en `Default-Squad`, el usuario pertenece a ese squad y el host tiene activado el interruptor **Host visibility**. Por defecto, los hosts nuevos se crean desactivados.

</details>

<details>

<summary>Hay conexión, pero las webs no se abren</summary>

Comprueba que `serverNames`, las claves y `shortIds` del perfil coinciden con lo que recibe el cliente, y que la dirección IP del nodo no está bloqueada por el proveedor.

</details>

***

### Nuestros recursos

**Canal de Telegram:** [https://t.me/f3cloud_news](https://t.me/f3cloud_news)\
**Web del hosting:** [https://f3cloud.com](https://f3cloud.com/es)
