Tutoriales de VPS
Configurar flujos de automatización n8n en un VPS (2026): alternativa autoalojada a Zapier
n8n es una herramienta de automatización de flujos de trabajo de código abierto que puedes instalar en tu propio VPS para sustituir a Zapier. Este artículo te enseña paso a paso a desplegar n8n en un VPS con Docker Compose, configurar HTTPS, ejecutar tu primer flujo de automatización y conectar DeepSeek AI para una automatización inteligente.

Sinceramente, la primera vez que usé Zapier me pareció realmente cómodo: pasar datos entre varias plataformas sin escribir código. Pero a medida que lo usaba, algo no cuadraba: el plan gratuito solo da 100 tareas al mes, y con un poco más de automatización se agota. ¿Actualizar al plan de pago? Solo el Starter cuesta $29.99/mes, y el plan de equipo es aún más caro.
Después descubrí n8n, una herramienta de automatización de flujos de trabajo de código abierto. Funcionalmente es similar a Zapier y Make, pero la diferencia clave es: puedes instalarla en tu propio VPS y ejecutar tantas tareas como quieras, sin límite de ejecuciones.
Este artículo te enseña paso a paso a desplegar n8n en un VPS y a ejecutar tu primer flujo de automatización desde cero.
Primero, algunas ventajas clave de n8n:
Sin límite de ejecuciones. El plan gratuito de Zapier da 100 tareas/mes, el plan Starter 750 tareas/mes, y cuando se agotan tienes que esperar o pagar más. n8n se instala en tu propio servidor, así que puedes ejecutar tanto como quieras. Hice una automatización que sincroniza los pedidos de Shopify a Google Sheets cada madrugada: decenas de miles de registros al mes, con cero coste adicional.
Los datos están en tus manos. Los datos de Zapier pasan por sus servidores, y algunas empresas con requisitos de cumplimiento de datos no se atreven a usarlo. Con n8n todos los datos están en tu VPS y no pasan por terceros.
Más de 400 integraciones. n8n admite más de 400 servicios, incluidos los habituales Slack, Google Sheets, GitHub, Notion, PostgreSQL y Redis. También admite Webhooks, así que los servicios sin integración nativa también pueden conectarse mediante API.
Fácil de conectar modelos de IA. n8n incluye nodos integrados de OpenAI, Anthropic y DeepSeek, por lo que puedes llamar a modelos grandes directamente dentro de tus flujos de automatización.
Por supuesto, también hay desventajas:
- Requiere mantenimiento propio. Tienes que gestionar el servidor tú mismo y solucionar los problemas tú mismo, a diferencia de Zapier, que funciona sin configuración.
- No hay un mercado de aplicaciones listo. Zapier tiene plantillas listas compartidas por usuarios; los flujos de n8n tienes que construirlos tú.
- La barrera de entrada es algo mayor. Necesitas conocimientos básicos de Linux y Docker.
En general, si eres un usuario intensivo de automatización (miles o decenas de miles de tareas al mes), o tienes requisitos de privacidad de datos, autoalojar n8n es una opción mucho más rentable que Zapier.
n8n en sí no es pesado; depende principalmente del tipo de flujos de trabajo que quieras ejecutar:
| Caso de uso | Configuración recomendada | Coste mensual estimado |
|---|---|---|
| Uso ligero (unos pocos flujos simples) | 1 núcleo / 1GB de RAM | $5-10/mes |
| Uso medio (con Webhooks + tareas programadas) | 2 núcleos / 2GB de RAM | $10-20/mes |
| Uso intensivo (muchos Webhooks + integración de IA) | 2 núcleos / 4GB de RAM | $15-30/mes |
Mi recomendación es ir directamente a 2 núcleos y 2GB. n8n en sí solo ocupa unos cientos de MB de RAM, pero PostgreSQL y Redis también necesitan memoria, y si vas a ejecutar flujos relacionados con IA (llamando a DeepSeek u OpenAI), los requisitos de memoria serán mayores.
En cuanto al sistema, se recomienda Ubuntu 22.04 o 24.04 para mayor tranquilidad.
Conéctate por SSH a tu VPS:
ssh root@你的VPS_IP
Si el sistema aún no tiene Docker instalado, ejecuta estas líneas:
# 更新系统
apt update && apt upgrade -y
# 安装 Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
# 验证安装
docker --version
docker compose version
Crea un directorio de proyecto:
mkdir -p /opt/n8n && cd /opt/n8n
Crea un archivo docker-compose.yml:
services:
postgres:
image: postgres:16-alpine
restart: always
environment:
POSTGRES_USER: n8n
POSTGRES_PASSWORD: 改成你自己的密码
POSTGRES_DB: n8n
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U n8n"]
interval: 10s
timeout: 5s
retries: 5
n8n:
image: n8nio/n8n:latest
restart: always
ports:
- "127.0.0.1:5678:5678"
environment:
N8N_HOST: your-domain.com
N8N_PORT: 5678
N8N_PROTOCOL: https
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_PORT: 5432
DB_POSTGRESDB_DATABASE: n8n
DB_POSTGRESDB_USER: n8n
DB_POSTGRESDB_PASSWORD: 改成你自己的密码
N8N_ENCRYPTION_KEY: 用下面命令生成的密钥
WEBHOOK_URL: https://your-domain.com
GENERIC_TIMEZONE: Asia/Shanghai
volumes:
- n8n_data:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
volumes:
postgres_data:
n8n_data:
Algunos puntos a tener en cuenta:
N8N_ENCRYPTION_KEYes clave. Si lo pierdes, las credenciales almacenadas en la base de datos no se podrán descifrar. Genéralo con este comando:
# 生成 32 位随机密钥
openssl rand -hex 32
Coloca la cadena de salida en la posición de N8N_ENCRYPTION_KEY de arriba.
-
El puerto está vinculado a
127.0.0.1:5678:5678, lo que significa que n8n solo escucha localmente y no se expone directamente a internet. Más adelante usaremos un proxy inverso Nginx con HTTPS. -
Rellena tu dominio en
N8N_HOSTyWEBHOOK_URL, de lo contrario los Webhooks no se activarán.
Inícialo:
cd /opt/n8n
docker compose up -d
Espera unas decenas de segundos y revisa los registros:
docker compose logs -f n8n
Si ves n8n ready on 0.0.0.0:5678, URL: https://your-domain.com, significa que se inició correctamente.
Caddy solicita y renueva automáticamente los certificados SSL, lo que es mucho menos complicado que Nginx.
# 安装 Caddy
apt install caddy
Crea /etc/caddy/Caddyfile:
your-domain.com {
reverse_proxy 127.0.0.1:5678
}
Reinicia:
systemctl restart caddy
Listo. Caddy solicitará automáticamente un certificado Let's Encrypt por ti, sin necesidad de intervención manual.
server {
listen 80;
server_name your-domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name your-domain.com;
ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_buffering off;
proxy_request_buffering off;
}
}
Recuerda solicitar un certificado SSL (con certbot).
Visita https://your-domain.com en el navegador; la primera vez te pedirá crear una cuenta de administrador:
- Correo electrónico
- Contraseña
- Nombre
Tras iniciar sesión, se recomienda cambiar algunos ajustes primero (avatar en la esquina superior derecha → Settings):
- User Management: si lo usan varias personas, activa la gestión de usuarios
- API: genera un API Token, que se usará más adelante para llamar a la interfaz de anuncios
- External Secrets: si quieres usar herramientas de gestión de secretos como Vault
Hagamos el ejemplo más sencillo: tras recibir una solicitud Webhook, escribir los datos en Google Sheets.
- Haz clic en el botón + de la esquina superior derecha para crear un nuevo flujo de trabajo
- Arrastra un nodo Webhook al lienzo
- Elige el método POST
- Escribe cualquier ruta, por ejemplo
webhook-test - Haz clic en "Listen for test event" para obtener la URL del Webhook
- Arrastra un nodo Google Sheets
- Primero conecta tu cuenta de Google (requiere autorización OAuth)
- Selecciona la hoja de cálculo y la hoja de trabajo
- Elige Append Row como operación
- Conecta los dos nodos
- Haz clic en Execute Workflow para probar
Para probar, envía una solicitud POST con curl:
curl -X POST https://your-domain.com/webhook/webhook-test \
-H "Content-Type: application/json" \
-d '{"name": "测试订单", "amount": 99.99}'
Si la configuración es correcta, los datos se escribirán automáticamente en Google Sheets.
Nota para el entorno de producción: una vez superadas las pruebas, recuerda habilitar la Production URL y la Production Version del flujo de trabajo. Los Webhooks tienen dos modos; el modo de desarrollo y el modo de producción están separados.
n8n admite oficialmente el nodo DeepSeek desde la versión 1.40. Si quieres que tus flujos tengan capacidades de IA, como responder correos automáticamente, resumir artículos o clasificar tickets, puedes llamar a la API de DeepSeek directamente en tus flujos.
Primero consigue una API Key de DeepSeek (regístrate en platform.deepseek.com, recarga unos dólares; las llamadas a la API son muy baratas).
Luego, en n8n:
- Añade un nodo DeepSeek
- Rellena tu API Key
- Elige el modelo (DeepSeek Chat o DeepSeek Reasoner)
- Escribe tus instrucciones en el Prompt
Por ejemplo: un flujo que responde automáticamente a tickets
Webhook(接收工单) → DeepSeek(生成回复) → Email(发送回复)
Cada vez que alguien envía un formulario, el Webhook pasa el contenido del ticket a DeepSeek, la IA genera una respuesta y luego se envía automáticamente un correo al cliente. Sin intervención humana en todo el proceso.
Ejecutar un flujo así en un VPS no tiene límite de llamadas a la API (solo pagas las tarifas de API de DeepSeek, unos céntimos por diez mil tokens), lo que es mucho más rentable que las funciones de IA de Zapier.
n8n se actualiza con mucha frecuencia; básicamente publica varias versiones al mes. Actualizar es sencillo:
cd /opt/n8n
docker compose pull n8n
docker compose up -d n8n
Los datos de n8n se almacenan en PostgreSQL, y las definiciones de los flujos de trabajo se guardan en el volumen n8n_data. Se recomienda hacer copias de seguridad periódicas:
# 备份 PostgreSQL
docker exec n8n-postgres-1 pg_dump -U n8n n8n > /backup/n8n-db-$(date +%Y%m%d).sql
# 备份 n8n 配置文件
tar czf /backup/n8n-config-$(date +%Y%m%d).tar.gz /opt/n8n/
Mi costumbre es escribir una tarea cron que haga una copia de seguridad cada madrugada.
n8n incluye un endpoint de comprobación de estado: https://your-domain.com/healthz; si devuelve 200, está bien. Puedes usar UptimeRobot o simplemente escribir un script cron para monitorizarlo.
Los Webhooks no reciben solicitudes
Revisa varios puntos: si la configuración del proxy inverso Nginx/Caddy es correcta, si la variable de entorno WEBHOOK_URL está configurada y si el firewall permite los puertos 80/443. Además, la dirección del Webhook de n8n debe llevar el prefijo /webhook/.
Se perdió N8N_ENCRYPTION_KEY
Entonces es una tragedia. Todas las contraseñas y API Keys almacenadas en los flujos no se podrán descifrar. Debes hacer copia de seguridad de esta clave, en un gestor de contraseñas o en un lugar seguro.
PostgreSQL no conecta
Revisa la configuración de PostgreSQL en docker-compose.yml, especialmente si la contraseña y el nombre de la base de datos son correctos. Además, ten en cuenta que PostgreSQL tarda en arrancar; el contenedor de n8n tiene depends_on + healthcheck, pero a veces la inicialización del primer arranque de PostgreSQL es lenta y puede que necesites reiniciar manualmente el contenedor de n8n.
Memoria insuficiente
Ejecutar n8n + PostgreSQL + Redis juntos con 1GB de RAM es ciertamente ajustado. Si tu VPS no tiene suficiente memoria, puedes apagar algunos servicios que no uses o actualizar directamente a una configuración de 2GB. También puedes usar docker stats para ver el uso de recursos.
Desplegar n8n en un VPS es, en realidad, solo ejecutar un Docker Compose. Pero lo que obtienes a cambio es:
- Ejecuciones de automatización ilimitadas, sin tener que contar las cuotas de Zapier para salir adelante
- Los datos completamente en tus manos, sin preocuparte por filtraciones de plataformas de terceros
- Posibilidad de conectar modelos de IA como DeepSeek, creando tus propios flujos de automatización con IA
- Un coste de autoalojamiento de unos cientos de dólares al mes, mucho más barato que el plan de equipo de Zapier
Si eres un usuario intensivo de automatización o buscas una alternativa de código abierto a Zapier, n8n merece la pena probarlo. Además, ejecutar n8n en un VPS no exige grandes especificaciones; una máquina barata de $5-10/mes es suficiente, así que puedes empezar con un coste prácticamente nulo.
Si tienes alguna pregunta, deja un comentario.