2025年11月10日 星期一

n8n install local with docker compose ( PostgreSQL)

n8n install local with docker compose ( PostgreSQL )

在前篇n8n平台使用SQLite 存放憑證、歷史執行紀錄和工作流程的database。參考官網也可以使用PostgreSQL使用database,根據官方github及PostgreSQL資料修改為個人環境使用。

主機環境

Ubuntu 24.04.3 LTS Docker version v28.5.1 Docker compose version v2.40.3 N8n version 1.116.2 (1.118.1) PostgreSQL version 17

安裝過程

1.使用者目錄建立n8n-postgres、n8n_data目錄及.env設定檔

將n8n_data目錄掛載到/home/node/.n8n目錄,當container重啟動後資料可以保留。 mkdir n8n-postgres/n8n_data/ -p 新建.env設定檔存放相關參數 (PostgreSQL user and password ),執行docker compose會自動帶入。 vim n8n-postgres/.env --- POSTGRES_USER=<changeUser> POSTGRES_PASSWORD=<changePassword> POSTGRES_DB=n8n POSTGRES_NON_ROOT_USER=<changeUser> POSTGRES_NON_ROOT_PASSWORD=<changePassword> --- 建立docker-compose.yml cd n8n-postgres vim docker-compose.yml --- services: n8n: image: n8nio/n8n:1.116.2 container_name: n8n ports: - "5678:5678" environment: - GENERIC_TIMEZONE=Asia/Taipei - TZ=Asia/Taipei - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true - N8N_RUNNERS_ENABLED=true - N8N_SECURE_COOKIE=false - 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} ports: - 5678:5678 links: - postgres volumes: - ./n8n_data:/home/node/.n8n depends_on: postgres: condition: service_healthy postgres: image: postgres:17 container_name: postgres environment: - POSTGRES_USER - POSTGRES_PASSWORD - POSTGRES_DB - POSTGRES_NON_ROOT_USER - POSTGRES_NON_ROOT_PASSWORD volumes: - ./db_data:/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 volumes: n8n_data: db_data: ---

2.啟動服務

啟動n8n、PostgreSQL服務 sudo docker compose up -d 啟動過程會依n8n、PostgreSQL啟動 檢查n8n、PostgreSQL服務 sudo docker compose ps -a ss -ntlp ls -la ls -l n8n_data/

3.問題解決

原本使用n8n最新版本1.118.2,出現Connection lost無法連線PostgreSQL的訊息 You have a connection issue or the server is down. n8n should reconnect automatically once the issue is resolved. 查詢網站無法有效解決。後來發現n8n 版本1.116.2可以正常使用,先用此版本進行測試。

沒有留言:

張貼留言

注意:只有此網誌的成員可以留言。