Autoalojar n8n en un VPS por menos de 10 $ al mes
· Por AI Compare
Una instalación de n8n lista para producción con HTTPS y Postgres por el precio de un servidor pequeño.
Qué obtiene
Una instancia de n8n lista para producción, con HTTPS, una base de datos de verdad y reinicios automáticos, en un pequeño servidor privado virtual (VPS). Coste del software: 0 $. Coste del servidor: normalmente 5–10 $ al mes.
Desglose de costes
| Concepto | Coste mensual habitual | Notas |
|---|---|---|
| VPS (1–2 vCPU, 2–4 GB de RAM) | 5–10 $ | 1 GB sirve para un uso ligero; con 2 GB o más se trabaja más holgado |
| Nombre de dominio | ~1 $ (unos 10–15 $/año) | Opcional, pero necesario para webhooks HTTPS limpios |
| Copias de seguridad / snapshots | 1–2 $ | La mayoría de proveedores cobran ~20 % del precio del servidor |
| n8n Community Edition | 0 $ | Workflows y ejecuciones ilimitados |
| Total | Unos 7–13 $ |
Los precios de los VPS cambian mucho en 2026. El droplet de 1 GB de DigitalOcean cuesta 6 $/mes; los planes «cost-optimised» más baratos de Hetzner han estado sin disponibilidad de forma intermitente este año. Compare los precios actuales antes de elegir proveedor.
Compárelo con n8n Cloud Starter, a 20 €/mes por 2.500 ejecuciones. Si hace más de unos miles de ejecuciones al mes, el autoalojamiento se amortiza de inmediato.
Qué necesita
- Un VPS con Ubuntu 22.04 o 24.04.
- Un dominio o subdominio, por ejemplo
n8n.yourcompany.com, que apunte a la IP del servidor con un registro A. - Soltura básica con SSH y la línea de comandos.
Paso 1: proteger el servidor
ssh root@YOUR_SERVER_IP
apt update && apt upgrade -y
adduser n8nadmin && usermod -aG sudo n8nadmin
ufw allow OpenSSH && ufw allow 80 && ufw allow 443 && ufw enable
Use claves SSH y desactive el acceso con contraseña una vez que haya comprobado que el acceso con clave funciona.
Paso 2: instalar Docker
curl -fsSL https://get.docker.com | sh
usermod -aG docker n8nadmin
Cierre la sesión y vuelva a entrar como n8nadmin.
Paso 3: crear el archivo de Docker Compose
Cree una carpeta y un docker-compose.yml:
services:
caddy:
image: caddy:2
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
postgres:
image: postgres:16
restart: unless-stopped
environment:
POSTGRES_USER: n8n
POSTGRES_PASSWORD: change-this-password
POSTGRES_DB: n8n
volumes:
- db_data:/var/lib/postgresql/data
n8n:
image: docker.n8n.io/n8nio/n8n
restart: unless-stopped
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_DATABASE: n8n
DB_POSTGRESDB_USER: n8n
DB_POSTGRESDB_PASSWORD: change-this-password
N8N_HOST: n8n.yourcompany.com
N8N_PROTOCOL: https
WEBHOOK_URL: https://n8n.yourcompany.com/
GENERIC_TIMEZONE: Europe/Budapest
N8N_ENCRYPTION_KEY: generate-a-long-random-string
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- postgres
volumes:
caddy_data:
db_data:
n8n_data:
Y un Caddyfile al lado:
n8n.yourcompany.com {
reverse_proxy n8n:5678
}
Caddy obtiene y renueva automáticamente un certificado HTTPS gratuito.
Paso 4: arrancarlo
docker compose up -d
Abra https://n8n.yourcompany.com y cree la cuenta de propietario.
Paso 5: hacer copias de seguridad como es debido
- Guarde
N8N_ENCRYPTION_KEYen un lugar seguro. Sin ella, sus credenciales guardadas no se pueden descifrar. - Active las snapshots semanales de su proveedor.
- Haga volcados de la base de datos con regularidad:
docker compose exec postgres pg_dump -U n8n n8n > backup.sql. - Exporte los workflows como JSON o conecte Git (función de pago) para tener historial de versiones.
Paso 6: actualizar con seguridad
docker compose pull
docker compose up -d
Haga una snapshot antes de las actualizaciones de versión importantes y lea las notas de la versión.
¿Qué tamaño de servidor necesita?
| Carga de trabajo | Tamaño recomendado |
|---|---|
| Unos pocos workflows, programaciones ligeras | 1 vCPU, 1–2 GB de RAM |
| Decenas de workflows, webhooks, volumen moderado | 2 vCPU, 4 GB de RAM |
| Mucho volumen o archivos grandes y workflows de IA | 4 vCPU, 8 GB de RAM; valore el queue mode con Redis |

