[How to Install n8n on Your Synology NAS – Marius Hosting](https://mariushosting.com/how-to-install-n8n-on-your-synology-nas/) [Docker \| n8n Docs](https://docs.n8n.io/hosting/installation/docker/#using-with-postgresql) ## ⚠️ 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'` y `Error: command start not found` - **Referencia**: [GitHub Issue #13753](https://github.com/n8n-io/n8n/issues/13753) ## ✅ SOLUCIÓN QUE FUNCIONA **Usar `--user 1000:1000` en lugar de `PUID/PGID` + pre-configurar permisos con Alpine** ```bash #!/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: 1. **Pre-configurar permisos**: Usar Alpine para establecer `chown -R 1000:1000` antes de iniciar n8n 2. **User específico**: `--user 1000:1000` en lugar de variables de entorno `PUID/PGID` 3. **Usuario interno**: n8n usa internamente el usuario `node` (UID 1000), no respeta PUID/PGID 4. **Postgres funciona normal**: No tiene problemas de permisos, solo n8n ## 📋 VERIFICACIÓN: ```bash # 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 ``` --- ## 💾 DOCKER COMPOSE (ALTERNATIVO - NO RECOMENDADO PARA SYNOLOGY)