¡Damas y caballeros, bienvenidos! Como prometí, gracias al éxito del video sobre cómo instalar n8n en Synology, hoy te mostraré cómo instalar n8n en Synology utilizando una base de datos PostgreSQL.
Antes de instalar n8n en Synology con PostgreSQL, te recomiendo ver este video que muestra una instalación más sencilla de n8n:
Estructura de carpetas en Synology con PostgreSQL
Antes de levantar los contenedores, es importante crear las siguientes carpetas en la carpeta docker:
/volume1/docker/n8n-stack
├── docker-compose.yml
├── postgres
│ └── data
└── n8n
└── data

Estas carpetas almacenan los datos persistentes de ambos servicios y evitan la pérdida de información ante reinicios o actualizaciones.
¿Quieres mejorar la seguridad de tu empresa?🚀
Ayudo a empresas a detectar riesgos de seguridad y proteger sus sistemas y soluciones de inteligencia artificial.
Docker Compose para n8n y PostgreSQL
Crea el archivo docker-compose.yml y pega el siguiente código. Reemplaza TU_CLAVE_SEGURA por la contraseña que prefieras:
version: "3.9"
services:
postgres:
image: postgres:15
container_name: postgres
restart: unless-stopped
environment:
POSTGRES_USER: n8n
POSTGRES_PASSWORD: TU_CLAVE_SEGURA
POSTGRES_DB: n8n
volumes:
- ./postgres/data:/var/lib/postgresql/data
networks:
- n8n-net
healthcheck:
test: ["CMD-SHELL", "pg_isready -U n8n"]
interval: 10s
timeout: 5s
retries: 5
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_PORT: 5432
DB_POSTGRESDB_DATABASE: n8n
DB_POSTGRESDB_USER: n8n
DB_POSTGRESDB_PASSWORD: TU_CLAVE_SEGURA
N8N_BASIC_AUTH_ACTIVE: "true"
N8N_BASIC_AUTH_USER: admin
N8N_BASIC_AUTH_PASSWORD: TU_CLAVE_SEGURA
N8N_SECURE_COOKIE: "false"
volumes:
- ./n8n/data:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
networks:
- n8n-net
networks:
n8n-net:
driver: bridge
Luego mueve el dichero docker-compose.yml a la carpeta raíz «n8n-stack» dentro del servidor NAS.

Configuración y despliegue de los contenedores.
Desde SSH en DSM, ejecuta:
sudo chown -R 1000:1000 /volume1/docker/n8n-stack/n8n/data
sudo chmod -R 755 /volume1/docker/n8n-stack/n8n/data
cd /volume1/docker/n8n-stack
docker compose up -d

Una vez finalizado el despliegue, abre la ventana de Container Manager. Verás los dos contenedores desplegados con su propia interfaz de red. Si siguen funcionando después de entre 40 segundos y 1 minuto sin errores, el despliegue ha sido exitoso.

Abre otra ventana o pestaña de tu navegador web, con la siguiente URL: http://IP_DEL_NAS:5678

¿Quieres mejorar la seguridad de tu empresa?🚀
Ayudo a empresas a detectar riesgos de seguridad y proteger sus sistemas y soluciones de inteligencia artificial.
Verificar que n8n usa PostgreSQL correctamente
Una vez levantados los contenedores, puedes comprobar que n8n está escribiendo en PostgreSQL accediendo al contenedor de la base de datos:
docker exec -it postgres psql -U n8n -d n8n
Y listar las tablas:
\dt
Si aparecen tablas: workflow_entity, execution_entity u otras similares, la conexión es correcta.

Para salir de la interfaz de PostgreSQL:
\q
Y luego nuevamente con:
exit

Deja una respuesta