2.9 KiB
2.9 KiB
How to Install n8n on Your Synology NAS – Marius Hosting Docker | n8n Docs
⚠️ PROBLEMA CONOCIDO EN SYNOLOGY NAS
Bug identificado: n8n tiene un problema conocido con volúmenes en Synology NAS cuando se usan las variables PUID
y PGID
.
- Error típico:
EACCES: permission denied, open '/home/node/.n8n/config'
yError: command start not found
- Referencia: GitHub Issue #13753
✅ SOLUCIÓN QUE FUNCIONA
Usar --user 1000:1000
en lugar de PUID/PGID
+ pre-configurar permisos con Alpine
#!/bin/bash
# 🧹 LIMPIAR CONTENEDORES ANTERIORES (si existen)
docker stop n8n n8n-postgres 2>/dev/null
docker rm n8n n8n-postgres 2>/dev/null
docker network rm n8n-network 2>/dev/null
# 1. Crear la red personalizada
docker network create n8n-network
# 2. Pre-configurar permisos con Alpine (CRÍTICO para Synology)
docker run --rm \
-v /volume1/docker/n8n/data:/temp \
alpine:latest \
sh -c "chown -R 1000:1000 /temp && chmod -R 755 /temp"
# 3. Ejecutar PostgreSQL
docker run -d \
--name=n8n-postgres \
--network=n8n-network \
-v /volume1/docker/n8n/postgres:/var/lib/postgresql/data \
-e POSTGRES_DB=n8n \
-e POSTGRES_USER=n8n_user \
-e POSTGRES_PASSWORD=091820kajhsd \
-e TZ=Europe/Madrid \
--restart=unless-stopped \
postgres:16
# 4. Esperar a que PostgreSQL esté listo
sleep 30
# 5. Ejecutar n8n con user 1000:1000 (NO usar PUID/PGID)
docker run -d \
--name=n8n \
--network=n8n-network \
-p 5678:5678 \
-v /volume1/docker/n8n/data:/home/node/.n8n \
-v /volume1/docker/n8n/files:/files \
--user 1000:1000 \
-e DB_TYPE=postgresdb \
-e DB_POSTGRESDB_HOST=n8n-postgres \
-e DB_POSTGRESDB_PORT=5432 \
-e DB_POSTGRESDB_DATABASE=n8n \
-e DB_POSTGRESDB_USER=n8n_user \
-e DB_POSTGRESDB_PASSWORD=091820kajhsd \
-e N8N_ENCRYPTION_KEY=275a54007229376e783fe3fb56e01ce07b29e7fa797e753295530ba2 \
-e GENERIC_TIMEZONE=Europe/Madrid \
-e TZ=Europe/Madrid \
-e NODE_ENV=production \
-e N8N_PORT=5678 \
--restart=unless-stopped \
n8nio/n8n:latest
echo "✅ n8n debería estar disponible en http://tu-nas-ip:5678"
🔧 PUNTOS CLAVE DE LA SOLUCIÓN:
- Pre-configurar permisos: Usar Alpine para establecer
chown -R 1000:1000
antes de iniciar n8n - User específico:
--user 1000:1000
en lugar de variables de entornoPUID/PGID
- Usuario interno: n8n usa internamente el usuario
node
(UID 1000), no respeta PUID/PGID - Postgres funciona normal: No tiene problemas de permisos, solo n8n
📋 VERIFICACIÓN:
# Verificar que los contenedores están corriendo
docker ps | grep n8n
# Ver logs de n8n (debería arrancar sin errores)
docker logs n8n
# Ver logs de postgres
docker logs n8n-postgres