Arquitectura de la solución
El stack se compone de dos contenedores principales:
- Caddy – servidor edge que se encarga de la terminación TLS y de redirigir el tráfico.
- n8n – el nodo principal de automatización (plataforma low-code).
INFO
El tráfico llega a los puertos 80/443 del host -> Caddy (SSL automático) -> red interna de Docker -> n8n (puerto 5678).
Paso 1. Preparación del servidor y requisitos del sistema
Para que n8n funcione de forma estable y sin interrupciones, hay que desplegarlo en un servidor virtual privado (VPS). Como infraestructura fiable te recomendamos nuestros servidores F3 Cloud, porque cumplen por completo los requisitos del sistema del proyecto y son totalmente compatibles con las instrucciones que verás más abajo.
| Parámetro | Requisitos mínimos |
|---|---|
| vCPU (núcleo virtual) | Mínimo 2 núcleos. |
| RAM | Desde 4 GB. |
| Almacenamiento | Desde 40 GB SSD. |
| Sistema operativo | Ubuntu 24.04 (recomendado). |
Para que n8n funcione con rapidez y comodidad, te aconsejamos la configuración DE-RZ9-2 (2 vCPU, 4 GB de RAM, 60 GB NVMe). Este servidor funciona con un procesador AMD Ryzen 9 5950X, que se maneja muy bien con las tareas en segundo plano y cubre por completo los requisitos del sistema del proyecto.
Paso 2. Elige la configuración del servidor
Después de iniciar sesión o registrarte en el panel de F3 Cloud, pulsa el botón Order service para pasar a la elección del servidor.

- En el menú Order service primero aparecen los planes principales. Para ver la lista completa, pulsa View all.
Cómo elegir el servidor:
- En la tarjeta DE-RZ9-2, pulsa el botón Order.
- En la configuración del servidor, elige el sistema operativo Ubuntu 24.04.
- Pulsa el botón Pay para completar el pedido.

La imagen es solo un ejemplo de cómo configurar el servidor. En tu caso tienes que elegir Ubuntu 24.04, no Debian.
Paso 3. Activación del servidor
Después del pago, el pedido se procesa automáticamente. La activación del servidor no suele tardar más de 2 minutos.

El estado del servidor es "processing", solo hay que esperar un poco.
Puedes seguir el estado actual en el panel de control. En cuanto el servidor esté listo para usarse, el estado cambiará a Active.
INFO
A veces la activación puede tardar algo más por una carga elevada y la cola de pedidos en la ubicación elegida. Si el servidor no se ha activado en 10 minutos, escríbenos un ticket y revisaremos enseguida el estado del pedido.
Paso 4. Obtén los datos del servidor
- Espera a que el servidor esté completamente activado.
- En el área de cliente, marca la casilla junto al servidor que necesitas y pulsa el botón Instructions del menú superior.
- Copia los datos de conexión que aparecen en las instrucciones:
- Server IP address.
- Username.
- Password.
En la captura de abajo se ve exactamente dónde encontrar esta información.


Los datos del servidor también se envían a tu correo.
Paso 5. Prepara la estructura de archivos
Para montar los volúmenes correctamente, hay que crear un directorio de trabajo y los archivos de configuración.
apt update && apt upgrade -yreboot ## Después del reinicio, continúa con el resto de la configuración.mkdir -p /opt/n8n && cd /opt/n8ntouch Caddyfile docker-compose.ymlPaso 6. Configuración del proxy inverso (Caddyfile)
Es preferible usar un Caddyfile externo en lugar de comandos inline en Compose, porque así es más fácil depurar y mantener la configuración.
nano /opt/n8n/CaddyfilePega el siguiente contenido.
tu-dominio.tld {
reverse_proxy n8n:5678
}TIP
Al arrancar, Caddy detectará automáticamente si hace falta emitir un certificado con Let's Encrypt o ZeroSSL.
Paso 7. Descripción de los servicios (Docker Compose)
El archivo de orquestación define los límites, las redes y las reglas de reinicio.
/opt/n8n/docker-compose.ymlPega el siguiente contenido y no olvides cambiarlo por tus propios valores.
services:
caddy:
image: caddy:latest
container_name: n8n-caddy
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
networks:
- n8n_net
n8n:
image: n8nio/n8n:latest
container_name: n8n-app
restart: always
environment:
- N8N_HOST=tu-dominio.tld
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://tu-dominio.tld/
volumes:
- n8n_data:/home/node/.n8n
networks:
- n8n_net
networks:
n8n_net:
volumes:
caddy_data:
caddy_config:
n8n_data:Paso 8. Despliegue y verificación
- Arranque del stack en modo detach, es decir, en segundo plano.
docker compose up -d- Seguimiento de la emisión del certificado SSL.
docker compose logs -f caddy- Comprobación de que n8n está disponible. La respuesta debe contener
HTTP/2 200.
curl -I https://tu-dominio.tldPaso 9. Registro en el panel de n8n
- La primera vez que entres en la página verás un formulario de registro.
- First and last name – se usan para mostrar tu nombre dentro del panel.
- Email – es tu usuario para entrar. A esta dirección llegarán los avisos de errores críticos en los flujos de trabajo y las solicitudes para restablecer la contraseña.
- Password – al menos 8 caracteres. Como n8n tendrá acceso a tus claves API, servidores y bots de Telegram, usa la combinación más compleja posible.
- Después de crear la cuenta, n8n te propondrá responder una breve encuesta.
- Role (What is your role?) – elige
EngineeroDevOps. De esto depende qué plantillas de flujos de trabajo te sugerirá el sistema en la página de inicio. - Usage Data – el sistema te pedirá permiso para enviar estadísticas anónimas. Como especialista en seguridad, quizá prefieras desactivar esta opción para reducir al mínimo el tráfico saliente hacia servidores de terceros.
- En cuanto entres en la interfaz principal, lo primero es proteger el acceso:
Ve a Settings (la rueda dentada abajo a la izquierda) -> Personal.
Busca la sección Multi-factor authentication.
Pulsa Enable 2FA y escanea el código QR con cualquier aplicación de autenticación.
Es importante que guardes los códigos de recuperación. En un contenedor Docker, restablecer la 2FA a través de la base de datos será complicado si no tienes experiencia con SQLite.
Recomendaciones técnicas
- Los datos de n8n (flujos de trabajo, cuentas) se guardan en el volumen con nombre
n8n_data. Para hacer una copia de seguridad basta con copiar el contenido de/var/lib/docker/volumes/n8n_n8n_data/. - Como Caddy funciona en los puertos 80/443, asegúrate de que el cortafuegos externo (ufw/iptables) permite el tráfico entrante en esos puertos.