Instalar n8n Autoalojado en tu Servidor: Guía Completa 2025
¿Cansado de depender de servicios en la nube? ¿Quieres control total sobre tus automatizaciones? En esta guía aprenderás a instalar n8n en tu propio servidor usando Docker, con 3 métodos diferentes según tus necesidades: instalación básica, setup profesional con PostgreSQL, y configuración con HTTPS.
En esta guía completa aprenderás:
- 3 métodos de instalación (básico, PostgreSQL, HTTPS con Traefik)
- Configuración de variables de entorno esenciales
- Backup y restauración de workflows
- Troubleshooting de problemas comunes
- Migración desde n8n Cloud
- Actualización y mantenimiento
¿Por qué autoalojar n8n?
- Control total sobre tus datos y flujos
- Sin límites de ejecuciones mensuales
- Personalización avanzada del entorno
- Integración con servicios locales (bases de datos, APIs internas)
- Ahorro de costes a largo plazo (n8n Cloud: desde $20/mes)
- Instalar nodos de comunidad sin restricciones
⚠️ Antes de empezar: Si estás comenzando con n8n y quieres entender los conceptos básicos primero, consulta nuestra Guía Completa de n8n 2025 (V2) que cubre desde cero hasta nivel experto.
📋 Requisitos Previos
Antes de comenzar, necesitas:
- Servidor propio – Si aún no tienes uno, consulta nuestro artículo Elige tu equipo: opciones fáciles y baratas para ver alternativas desde €150
- Sistema operativo preparado – Sigue la guía para instalar el sistema operativo (Ubuntu Server 22.04 LTS recomendado)
- Docker instalado – Usa nuestro script de instalación de Docker con un solo comando
- Conexión SSH – Acceso a tu servidor mediante terminal
Requisitos de Hardware según Uso
| Tipo de Uso | CPU | RAM | Disco | Workflows Estimados |
|---|---|---|---|---|
| Personal/Pruebas | 1 core | 1 GB | 10 GB | ~10 workflows simples |
| Pequeña Empresa | 2 cores | 2 GB | 20 GB | ~50 workflows medianos |
| Producción Media | 4 cores | 4 GB | 50 GB | ~200 workflows complejos |
| Enterprise | 8+ cores | 8+ GB | 100+ GB | 500+ workflows intensivos |
🚀 Método 1: Instalación Básica con Docker Run
Este método es perfecto para empezar rápido o para uso personal. Usa SQLite como base de datos (incluida en n8n).
Instalación en un Comando
docker run -d \
--name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
-e N8N_BASIC_AUTH_ACTIVE=true \
-e N8N_BASIC_AUTH_USER=admin \
-e N8N_BASIC_AUTH_PASSWORD=TuPassword123! \
-e TZ=Europe/Madrid \
-e GENERIC_TIMEZONE=Europe/Madrid \
--restart unless-stopped \
n8nio/n8n
⚠️ IMPORTANTE: Cambia admin y TuPassword123! por credenciales seguras.
Explicación de Parámetros
-d– Ejecuta en segundo plano (detached)--name n8n– Nombre del contenedor-p 5678:5678– Expone el puerto 5678 (interfaz web)-v ~/.n8n:/home/node/.n8n– Persistencia de datos en tu servidorN8N_BASIC_AUTH_*– Autenticación básica (obligatoria para seguridad)TZ y GENERIC_TIMEZONE– Zona horaria para ejecuciones programadas--restart unless-stopped– Reinicio automático si el servidor se reinicia
Verificar la Instalación
1. Comprueba que el contenedor está corriendo:
docker ps
Deberías ver algo como:
CONTAINER ID IMAGE STATUS PORTS NAMES
abc123def456 n8nio/n8n Up 2 minutes 0.0.0.0:5678->5678/tcp n8n
2. Accede a la interfaz web:
http://IP_TU_SERVIDOR:5678
3. Inicia sesión con las credenciales configuradas
🗄️ Método 2: Instalación Profesional con Docker Compose + PostgreSQL
¿Por qué PostgreSQL en vez de SQLite?
- Mejor performance con muchos workflows (>50)
- Soporta múltiples instancias n8n (escalabilidad)
- Backups más confiables
- Requerido para n8n en producción seria
Este setup usa el docker-compose oficial del repositorio n8n-hosting.
Paso 1: Crear Estructura de Carpetas
mkdir -p ~/n8n-postgres
cd ~/n8n-postgres
Paso 2: Crear Archivo .env
cat > .env << 'EOF'
# PostgreSQL Configuration
POSTGRES_USER=n8n_admin
POSTGRES_PASSWORD=ChangeThisSecurePassword123!
POSTGRES_DB=n8n
# n8n Non-Root User (más seguro)
POSTGRES_NON_ROOT_USER=n8n_user
POSTGRES_NON_ROOT_PASSWORD=ChangeThisPassword456!
EOF
⚠️ CRÍTICO: Cambia TODAS las contraseñas antes de continuar.
Paso 3: Crear docker-compose.yml
Este es el archivo oficial de n8n-hosting (verificado 2025):
cat > docker-compose.yml << 'EOF'
version: '3.8'
volumes:
db_storage:
n8n_storage:
services:
postgres:
image: postgres:16
restart: always
environment:
- POSTGRES_USER
- POSTGRES_PASSWORD
- POSTGRES_DB
- POSTGRES_NON_ROOT_USER
- POSTGRES_NON_ROOT_PASSWORD
volumes:
- db_storage:/var/lib/postgresql/data
- ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
healthcheck:
test: ['CMD-SHELL', 'pg_isready -h localhost -U ${POSTGRES_USER} -d ${POSTGRES_DB}']
interval: 5s
timeout: 5s
retries: 10
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
- DB_POSTGRESDB_USER=${POSTGRES_NON_ROOT_USER}
- DB_POSTGRESDB_PASSWORD=${POSTGRES_NON_ROOT_PASSWORD}
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=ChangeWebPassword789!
- TZ=Europe/Madrid
- GENERIC_TIMEZONE=Europe/Madrid
ports:
- 5678:5678
links:
- postgres
volumes:
- n8n_storage:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
EOF
Paso 4: Crear Script de Inicialización (Opcional)
cat > init-data.sh << 'EOF'
#!/bin/bash
set -e
# Crear usuario no-root para n8n
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
CREATE USER $POSTGRES_NON_ROOT_USER WITH PASSWORD '$POSTGRES_NON_ROOT_PASSWORD';
GRANT ALL PRIVILEGES ON DATABASE $POSTGRES_DB TO $POSTGRES_NON_ROOT_USER;
EOSQL
EOF
chmod +x init-data.sh
Paso 5: Iniciar n8n con PostgreSQL
docker-compose up -d
Paso 6: Verificar que Funciona
# Ver logs en tiempo real
docker-compose logs -f n8n
# Ver estado de servicios
docker-compose ps
Deberías ver:
NAME STATUS PORTS
n8n-postgres-n8n-1 Up 2 minutes 0.0.0.0:5678->5678/tcp
n8n-postgres-postgres-1 Up 2 minutes (healthy)
Detener y Gestionar
# Detener sin borrar datos
docker-compose stop
# Reiniciar
docker-compose restart
# Detener y eliminar contenedores (datos persisten en volúmenes)
docker-compose down
# Ver uso de recursos
docker stats
📊 Comparativa: Docker Run vs Docker Compose
| Característica | Docker Run (SQLite) | Docker Compose (PostgreSQL) |
|---|---|---|
| Dificultad | Fácil (1 comando) | Media (varios archivos) |
| Base de Datos | SQLite (embebida) | PostgreSQL (contenedor separado) |
| Performance | Buena (<50 workflows) | Excelente (cualquier escala) |
| Escalabilidad | Limitada (1 instancia) | Alta (múltiples instancias) |
| Backups | Simple (copiar ~/.n8n) | Requiere pg_dump |
| Uso Recomendado | Personal, pruebas | Producción, empresas |
| RAM Requerida | ~512 MB | ~1.5 GB (n8n + postgres) |
⚙️ Variables de Entorno Esenciales
Estas variables mejoran tu instalación de n8n. Añádelas al comando docker run o al docker-compose.yml en la sección environment: de n8n.
Configuración de URL y Webhooks
-e N8N_HOST=n8n.tudominio.com \
-e N8N_PROTOCOL=https \
-e WEBHOOK_URL=https://n8n.tudominio.com/ \
-e N8N_EDITOR_BASE_URL=https://n8n.tudominio.com/
¿Para qué sirven?
N8N_HOST: Dominio donde estará accesible n8nN8N_PROTOCOL: http o https (usa https en producción)WEBHOOK_URL: URL pública para webhooks (crítico para integraciones externas)N8N_EDITOR_BASE_URL: URL del editor (para emails y redirecciones)
Límites de Ejecución y Performance
-e EXECUTIONS_TIMEOUT=300 \
-e EXECUTIONS_TIMEOUT_MAX=3600 \
-e EXECUTIONS_DATA_PRUNE=true \
-e EXECUTIONS_DATA_MAX_AGE=168 \
-e N8N_PAYLOAD_SIZE_MAX=16
Explicación:
EXECUTIONS_TIMEOUT: Timeout por defecto (300 seg = 5 min)EXECUTIONS_TIMEOUT_MAX: Timeout máximo (3600 seg = 1 hora)EXECUTIONS_DATA_PRUNE: Limpia ejecuciones antiguas automáticamenteEXECUTIONS_DATA_MAX_AGE: Mantener ejecuciones de últimos 7 días (168 horas)N8N_PAYLOAD_SIZE_MAX: Tamaño máximo payload en MB (16MB)
Logging y Debugging
-e N8N_LOG_LEVEL=info \
-e N8N_LOG_OUTPUT=console,file \
-e N8N_LOG_FILE_LOCATION=/home/node/.n8n/n8n.log
Niveles disponibles: error, warn, info (default), verbose, debug
Tabla: Variables Esenciales vs Opcionales
| Variable | Tipo | Valor Default | Cuándo Usar |
|---|---|---|---|
| N8N_BASIC_AUTH_ACTIVE | Esencial | false | Siempre (seguridad) |
| TZ / GENERIC_TIMEZONE | Esencial | UTC | Siempre (cron jobs) |
| DB_TYPE | Esencial | sqlite | Si usas PostgreSQL/MySQL |
| WEBHOOK_URL | Esencial | http://localhost:5678 | Si usas webhooks externos |
| N8N_HOST | Opcional | localhost | Si tienes dominio |
| EXECUTIONS_DATA_PRUNE | Opcional | false | Si tienes muchos workflows |
| N8N_LOG_LEVEL | Opcional | info | Para debugging |
🔐 Configurar HTTPS con Traefik (Método 3)
¿Por qué HTTPS?
- Seguridad: Credenciales y datos encriptados
- Webhooks: Muchos servicios (Stripe, GitHub) solo envían webhooks a HTTPS
- Professional: URL limpia tipo https://n8n.tudominio.com
Este setup usa Traefik como reverse proxy con certificados Let's Encrypt automáticos.
Requisitos Previos
- Dominio propio apuntando a tu servidor (A record: n8n.tudominio.com → IP_SERVIDOR)
- Puerto 80 y 443 abiertos en firewall
Docker Compose con Traefik
version: '3.8'
volumes:
db_storage:
n8n_storage:
traefik_data:
services:
traefik:
image: traefik:v2.10
restart: always
command:
- "--api.dashboard=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.letsencrypt.acme.email=tu@email.com"
- "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
- "--certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web"
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- traefik_data:/letsencrypt
postgres:
image: postgres:16
restart: always
environment:
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- POSTGRES_DB=${POSTGRES_DB}
volumes:
- db_storage:/var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER}']
interval: 5s
timeout: 5s
retries: 10
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
- DB_POSTGRESDB_USER=${POSTGRES_USER}
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
- N8N_HOST=n8n.tudominio.com
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.tudominio.com/
- N8N_EDITOR_BASE_URL=https://n8n.tudominio.com/
volumes:
- n8n_storage:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
labels:
- "traefik.enable=true"
- "traefik.http.routers.n8n.rule=Host(`n8n.tudominio.com`)"
- "traefik.http.routers.n8n.entrypoints=websecure"
- "traefik.http.routers.n8n.tls=true"
- "traefik.http.routers.n8n.tls.certresolver=letsencrypt"
- "traefik.http.services.n8n.loadbalancer.server.port=5678"
Cambia tu@email.com y n8n.tudominio.com por tus datos reales.
💾 Backup y Restauración
Backup con SQLite (Docker Run)
# Backup completo (workflows + credenciales + configuración)
tar -czf n8n-backup-$(date +%Y%m%d).tar.gz ~/.n8n
# Restaurar
tar -xzf n8n-backup-20250101.tar.gz -C ~/
Backup con PostgreSQL (Docker Compose)
# Backup base de datos
docker exec n8n-postgres-postgres-1 pg_dump -U n8n_admin n8n > n8n-db-backup-$(date +%Y%m%d).sql
# Backup volumen n8n (archivos, credenciales)
docker run --rm -v n8n-postgres_n8n_storage:/data -v $(pwd):/backup ubuntu tar czf /backup/n8n-volume-backup-$(date +%Y%m%d).tar.gz /data
# Restaurar base de datos
cat n8n-db-backup-20250101.sql | docker exec -i n8n-postgres-postgres-1 psql -U n8n_admin n8n
Script Automático de Backup
cat > ~/backup-n8n.sh << 'EOF'
#!/bin/bash
BACKUP_DIR=~/n8n-backups
mkdir -p $BACKUP_DIR
DATE=$(date +%Y%m%d_%H%M%S)
# Backup PostgreSQL
docker exec n8n-postgres-postgres-1 pg_dump -U n8n_admin n8n | gzip > $BACKUP_DIR/db-$DATE.sql.gz
# Backup volumen n8n
docker run --rm -v n8n-postgres_n8n_storage:/data -v $BACKUP_DIR:/backup ubuntu tar czf /backup/volume-$DATE.tar.gz /data
# Mantener solo últimos 7 backups
find $BACKUP_DIR -name "*.gz" -mtime +7 -delete
echo "Backup completado: $DATE"
EOF
chmod +x ~/backup-n8n.sh
# Programar backup diario (crontab)
(crontab -l ; echo "0 3 * * * ~/backup-n8n.sh") | crontab -
🔄 Actualizar n8n
Actualizar con Docker Run
# 1. Hacer backup primero
tar -czf n8n-backup-pre-update.tar.gz ~/.n8n
# 2. Detener contenedor actual
docker stop n8n
# 3. Descargar última versión
docker pull n8nio/n8n
# 4. Eliminar contenedor viejo (datos persisten en volumen)
docker rm n8n
# 5. Crear nuevo contenedor con mismo comando original
docker run -d --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n -e ... n8nio/n8n
Actualizar con Docker Compose
# Desde carpeta del proyecto
cd ~/n8n-postgres
# Descargar nuevas imágenes
docker-compose pull
# Recrear contenedores con nuevas versiones
docker-compose up -d
# Ver logs para confirmar
docker-compose logs -f n8n
🔧 Troubleshooting: Problemas Comunes
Problema 1: "Cannot connect to n8n at localhost:5678"
Causa: Puerto bloqueado o contenedor no corriendo
Solución:
# Verificar que n8n está corriendo
docker ps | grep n8n
# Ver logs de errores
docker logs n8n
# Verificar puerto no usado por otro servicio
sudo lsof -i :5678
# Si puerto ocupado, cambiar puerto en docker run:
-p 8080:5678 # Acceder por http://IP:8080
Problema 2: "Database connection failed" con PostgreSQL
Solución:
# Verificar que postgres está healthy
docker-compose ps
# Ver logs de postgres
docker-compose logs postgres
# Verificar credenciales en .env coinciden con docker-compose.yml
cat .env
# Reiniciar servicios
docker-compose restart
Problema 3: Workflows no se ejecutan a la hora programada
Causa: Zona horaria incorrecta
Solución:
# Verificar timezone dentro del contenedor
docker exec n8n date
# Añadir variables de entorno
-e TZ=Europe/Madrid \
-e GENERIC_TIMEZONE=Europe/Madrid
Problema 4: "Error: ENOSPC: System limit for number of file watchers reached"
Solución en el host:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
Problema 5: Webhooks no funcionan desde servicios externos
Solución:
- Verifica
WEBHOOK_URLesté configurado con tu IP/dominio público - Abre puerto 5678 en firewall (o 80/443 si usas Traefik)
- Verifica NAT/Port forwarding en router si estás detrás de NAT
# Test webhook desde exterior
curl http://TU_IP:5678/webhook-test/test
# Ver logs en tiempo real para debugging
docker logs -f n8n
📊 Monitorización y Logs
Ver Logs en Tiempo Real
# Docker run
docker logs -f n8n
# Docker compose (n8n)
docker-compose logs -f n8n
# Docker compose (postgres)
docker-compose logs -f postgres
# Últimas 100 líneas
docker logs --tail 100 n8n
Monitorizar Recursos
# Uso de CPU y RAM en tiempo real
docker stats
# Tamaño de volúmenes
docker system df -v
# Espacio usado por n8n
du -sh ~/.n8n
🔗 Recursos Adicionales de n8n
Ahora que tienes n8n instalado, estos recursos te ayudarán a aprovecharlo al máximo:
- n8n 2025: Automatiza 100+ Tareas Sin Código (Guía Completa V2) - Guía completa desde cero
- Automatización con n8n: 20 Workflows Listos para Usar (2025) - Workflows listos para copiar
- Los 10 Mejores Nodos de Comunidad de n8n - Expande funcionalidad con nodos de comunidad
- Automatización web avanzada: integra n8n con Browserless y Playwright - Scraping y automatización web avanzada
- n8n webhook no responde: 5 causas y cómo solucionarlo (2025) - Troubleshooting de webhooks
❓ Preguntas Frecuentes
¿SQLite o PostgreSQL para n8n?
SQLite: perfecto para uso personal o pequeños equipos (<50 workflows). Es más simple (sin contenedor adicional) y usa menos RAM (~512MB). PostgreSQL: recomendado para producción, empresas, o si tienes +50 workflows activos. Mejor performance, permite múltiples instancias n8n, backups más confiables. Usa más RAM (~1.5GB) pero escala mejor.
¿Cómo migrar workflows desde n8n Cloud a self-hosted?
1) En n8n Cloud: Settings → Export → Descarga todos los workflows como JSON, 2) En n8n self-hosted: Workflows → Import from File → Sube el JSON. También puedes exportar workflows individuales desde el menú de 3 puntos en cada workflow. Las credenciales NO se exportan por seguridad, deberás reconfigurarlas manualmente.
¿Puedo usar n8n en una Raspberry Pi?
Sí, pero solo Raspberry Pi 4 con 4GB+ RAM. Usa la imagen oficial: docker pull n8nio/n8n (soporta arm64). Performance será limitada para workflows complejos. Recomendado para máximo 10-20 workflows simples. Para producción seria, mejor un VPS x86 desde €5/mes (Hetzner, DigitalOcean).
¿Cómo configurar SMTP para enviar emails desde n8n?
Añade estas variables de entorno: -e N8N_SMTP_HOST=smtp.gmail.com -e N8N_SMTP_PORT=587 -e N8N_SMTP_USER=tu@email.com -e N8N_SMTP_PASS=tu_app_password -e N8N_SMTP_SENDER=tu@email.com. Para Gmail: usa App Passwords (no tu contraseña normal). Para Outlook/Office365: smtp.office365.com:587.
¿Dónde se guardan los workflows y credenciales?
SQLite: Todo en ~/.n8n/database.sqlite. PostgreSQL: Workflows en base de datos postgres, archivos/credenciales en volumen n8n_storage. Para ver ubicación exacta: docker volume inspect n8n_storage. Las credenciales están encriptadas con tu N8N_ENCRYPTION_KEY.
¿Cómo escalar n8n para alta carga?
Necesitas PostgreSQL (no SQLite). Opciones: 1) Queue mode: Separa main process y workers usando Redis, 2) Múltiples instancias n8n apuntando a misma DB, 3) Aumentar EXECUTIONS_PROCESS=main (ejecuta en proceso principal, no spawning). Para +1000 ejecuciones/día considera queue mode con 2-3 workers.
¿n8n soporta MySQL en vez de PostgreSQL?
Sí, pero no oficialmente recomendado. MySQL 8.0+ funciona con: -e DB_TYPE=mysqldb -e DB_MYSQLDB_HOST=mysql -e DB_MYSQLDB_DATABASE=n8n. Sin embargo, n8n recomienda PostgreSQL por mejor soporte de tipos de datos complejos y performance con JSON.
¿Cómo ver ejecuciones fallidas y errores?
En n8n UI: Executions → Filter by "Error". Para logs del sistema: docker logs n8n | grep ERROR. Configura -e N8N_LOG_LEVEL=debug para más detalles. Puedes enviar errores a Sentry con -e N8N_SENTRY_DSN=tu_sentry_dsn.
¿Puedo ejecutar n8n sin Docker?
Sí, instalando Node.js 18+ y ejecutando: npm install -g n8n luego n8n start. Pero Docker es MUY recomendado porque: aísla dependencias, facilita actualizaciones, evita conflictos con otras apps Node.js, y es más fácil hacer backups completos.
¿Cómo limitar el uso de CPU/RAM de n8n?
Añade límites al docker run: --memory="2g" --cpus="2.0". En docker-compose bajo el servicio n8n:
deploy:
resources:
limits:
cpus: '2.0'
memory: 2G
Monitoriza con docker stats.
¿n8n tiene autenticación de dos factores (2FA)?
No nativamente con Basic Auth. Alternativas: 1) Usa Authelia/Authentik como proxy con 2FA antes de n8n, 2) Activa SSO con proveedores OAuth (Google, GitHub) en planes n8n Enterprise, 3) Usa VPN tipo Tailscale/Wireguard para acceso seguro. Para producción seria considera usar un IdP externo.
¿Cómo actualizar la versión de PostgreSQL?
1) Backup completo: pg_dump -U usuario n8n > backup.sql, 2) Cambia versión en docker-compose.yml: postgres:16 → postgres:17, 3) Detén servicios: docker-compose down, 4) Elimina volumen viejo: docker volume rm n8n-postgres_db_storage, 5) Inicia y restaura: docker-compose up -d luego cat backup.sql | docker exec -i postgres psql -U usuario n8n.
💡 Conclusión
Autoalojar n8n te da libertad total sobre tus automatizaciones y datos. Con Docker, el proceso es rápido y reproducible. Recuerda:
- Usa Basic Auth siempre (o SSO en producción)
- Haz backups automáticos diarios (especialmente antes de actualizar)
- Mantén Docker y n8n actualizados para seguridad y nuevas features
- Protege el acceso con HTTPS si expones a internet
- Monitoriza recursos (RAM, CPU, disco) regularmente
- Lee la Guía Completa de n8n V2 para dominar workflows
¿Problemas con la instalación? Únete a nuestro Discord donde la comunidad te ayudará.
