n8n es una herramienta de flujos de trabajo que conecta aplicaciones, API y modelos de IA con un editor visual. Autoalojarlo significa que tus flujos, credenciales y datos se quedan en un servidor que controlas, y las ejecuciones no se miden. Esta guía despliega n8n con Docker Compose, una base de datos Postgres y HTTPS, listo para ejecutar agentes de IA las 24 horas.
¿Por qué un VPS para agentes?
Los agentes suelen ejecutarse según una programación o reaccionar a webhooks, por lo que necesitan un servidor siempre encendido y accesible. Un VPS te da una dirección fija para los webhooks y suficiente RAM para que los flujos respondan con agilidad. Un plan de 2 vCPU y 4 GB sirve para una configuración pequeña. Consulta el hosting para agentes de IA para ver tamaños, y añade un servidor GPU si quieres modelos locales.
Antes de empezar
- Un VPS con Docker. Consulta instalar Docker.
- Un dominio que apunte al servidor. Consulta los registros DNS.
Paso 1: archivo Compose
mkdir -p ~/n8n && cd ~/n8n
cat > compose.yaml <<'YAML'
services:
db:
image: postgres:16
restart: unless-stopped
environment:
POSTGRES_USER: n8n
POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: n8n
volumes:
- db:/var/lib/postgresql/data
n8n:
image: n8nio/n8n:latest
restart: unless-stopped
depends_on: [db]
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: db
DB_POSTGRESDB_USER: n8n
DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD}
N8N_HOST: n8n.example.com
N8N_PROTOCOL: https
WEBHOOK_URL: https://n8n.example.com/
N8N_ENCRYPTION_KEY: ${ENCRYPTION_KEY}
GENERIC_TIMEZONE: UTC
ports:
- "127.0.0.1:5678:5678"
volumes:
- n8n:/home/node/.n8n
volumes:
db:
n8n:
YAML
Paso 2: secretos
cat > .env <<ENV
DB_PASSWORD=$(openssl rand -hex 24)
ENCRYPTION_KEY=$(openssl rand -hex 32)
ENV
chmod 600 .env
Haz copia de seguridad de ENCRYPTION_KEY. Sin ella, n8n no puede descifrar las credenciales que ha almacenado.
Paso 3: inicia n8n
docker compose up -d
docker compose logs -f n8n
Paso 4: HTTPS
n8n.example.com {
reverse_proxy 127.0.0.1:5678
}
Recarga Caddy, abre el sitio y crea la cuenta de propietario.
Paso 5: crea un flujo de trabajo con un agente
- Añade un disparador Webhook o Schedule.
- Añade un nodo AI Agent y conecta un modelo de chat, por ejemplo una API alojada, u Ollama en tu propio servidor GPU.
- Dale al agente herramientas como peticiones HTTP, una base de datos o un nodo de mensajería.
- Prueba con una ejecución manual y luego activa el flujo de trabajo.
Mantenlo seguro
- Vincula n8n a 127.0.0.1 y expón solo el proxy HTTPS.
- Protege los webhooks con una cabecera secreta o una ruta secreta siempre que sea posible.
- Haz copia de seguridad del volumen de Postgres y del volumen de n8n. Consulta las copias de seguridad con restic o borg.
- Actualiza con
docker compose pull && docker compose up -ddespués de leer las notas de la versión.