Windows 10 本地部署工作流自动化工具 n8n
参考
- 豆包
- deepseek
- https://docs.n8n.io/
- https://zhuanlan.zhihu.com/p/1968808989946016165
- https://blog.csdn.net/qq_43499921/article/details/154605297
- https://www.n8nclub.com.cn/article/docker_n8n#1ef34a84d1e9804598b6f8731876db49
环境
| 软件/系统 | 版本 | 说明 |
|---|---|---|
| Windows | windows 10 专业版 22H2 64 位操作系统, 基于 x64 的处理器 | |
| Docker Desktop | 4.48.0 | |
| Docker | Docker version 28.5.1, build e180ab8 | |
| Docker Compose | Docker Compose version v2.40.0-desktop.1 | |
| postgres | 16-alpine | 镜像 |
| n8n | 1.119.1 | 镜像 |
正文
下面的内容由豆包生成
以下是适配 PostgreSQL 数据库的 n8n Docker Compose 配置文件(docker-compose.yml),基于官方推荐规范优化,包含数据持久化、时区配置、安全加固等核心特性:
version: '3.8'
services:
# PostgreSQL 数据库服务
postgres:
image: postgres:16-alpine # 轻量稳定的PostgreSQL镜像,适配生产环境
container_name: n8n-postgres
restart: always # 容器异常时自动重启
environment:
POSTGRES_USER: n8n_user # 数据库用户名(可自定义)
POSTGRES_PASSWORD: ${DB_PASSWORD} # 数据库密码(建议通过环境变量注入,避免硬编码)
POSTGRES_DB: n8n_db # n8n专用数据库名(可自定义)
TZ: ${TIMEZONE} # 时区统一(与n8n服务保持一致)
volumes:
- postgres_data:/var/lib/postgresql/data # 数据持久化卷,避免容器删除后数据丢失
healthcheck:
# 健康检查:确保数据库启动完成后再启动n8n
test: ["CMD-SHELL", "pg_isready -U n8n_user -d n8n_db"]
interval: 5s
timeout: 5s
retries: 5
networks:
- n8n-network # 独立网络,隔离服务
# n8n 服务
n8n:
image: n8nio/n8n:latest # 使用稳定版n8n(生产环境推荐,如需测试可改为next)
container_name: n8n
restart: always
environment:
# 时区配置(与数据库统一,避免时间同步问题)
GENERIC_TIMEZONE: ${TIMEZONE}
TZ: ${TIMEZONE}
# 强制配置文件权限(安全加固,防止非授权修改)
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: "true"
# 数据库连接配置(关联PostgreSQL服务)
DB_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres # 容器名作为hostname(同一网络下可直接访问)
DB_POSTGRESDB_PORT: 5432 # PostgreSQL默认端口
DB_POSTGRESDB_DATABASE: n8n_db # 与PostgreSQL的POSTGRES_DB一致
DB_POSTGRESDB_USER: n8n_user # 与PostgreSQL的POSTGRES_USER一致
DB_POSTGRESDB_PASSWORD: ${DB_PASSWORD} # 与PostgreSQL的POSTGRES_PASSWORD一致
# 可选:n8n安全配置(生产环境建议启用)
N8N_BASIC_AUTH_ACTIVE: "true" # 启用基础认证
N8N_BASIC_AUTH_USER: ${N8N_USER} # n8n登录用户名
N8N_BASIC_AUTH_PASSWORD: ${N8N_PASSWORD} # n8n登录密码
# N8N_PROTOCOL: "https" # 生产环境建议启用HTTPS(需配合反向代理)
volumes:
- n8n_data:/home/node/.n8n # n8n配置、工作流数据持久化卷
ports:
- "5678:5678" # 暴露n8n默认端口(宿主机端口:容器端口,可自定义宿主机端口)
depends_on:
postgres:
condition: service_healthy # 依赖PostgreSQL健康检查通过后启动
networks:
- n8n-network
# 定义共享网络(隔离容器通信)
networks:
n8n-network:
driver: bridge
# 定义数据卷(持久化存储)
volumes:
postgres_data: # PostgreSQL数据卷
n8n_data: # n8n配置/工作流数据卷
使用说明
- 环境变量配置:在
docker-compose.yml同级目录创建.env文件,填写以下参数(自定义值):# 数据库密码(建议复杂密码) DB_PASSWORD=xiaqiuchu_db_password # 时区(例如Asia/Shanghai、Europe/London) TIMEZONE=Asia/Shanghai # n8n登录认证(可选,生产环境建议配置) N8N_USER=xiaqiuchu_n8n_username N8N_PASSWORD=xiaqiuchu_n8n_password - 启动服务:
# 启动容器(后台运行) docker-compose up -d # 查看日志(排查启动问题) docker-compose logs -f - 访问n8n:浏览器打开
http://<服务器IP>:5678(如配置HTTPS,需改为https),输入.env中配置的N8N_USER和N8N_PASSWORD登录。
核心特性说明
- 数据持久化:通过
postgres_data和n8n_data卷分别持久化数据库数据和n8n配置/工作流,容器删除后数据不丢失。 - 服务依赖:通过
depends_on+ 健康检查确保PostgreSQL完全启动后再启动n8n,避免连接失败。 - 安全加固:启用配置文件权限强制校验、可选基础认证,数据库密码通过环境变量注入(避免硬编码泄露)。
- 兼容性:基于官方推荐的Docker镜像和配置规范,支持Linux、Mac、Windows(Docker Desktop)环境。
扩展建议
- 生产环境建议搭配反向代理(如Nginx)配置HTTPS证书。
- 如需监控,可添加Prometheus + Grafana组件(参考n8n官方文档)。
- 定期备份
postgres_data和n8n_data卷数据,避免意外丢失。
博 主 :夏秋初
地 址 :https://www.cnblogs.com/xiaqiuchu/p/19219720
如果对你有帮助,可以点一下 推荐 或者 关注 吗?会让我的分享变得更有动力~
转载时请带上原文链接,谢谢。
地 址 :https://www.cnblogs.com/xiaqiuchu/p/19219720
如果对你有帮助,可以点一下 推荐 或者 关注 吗?会让我的分享变得更有动力~
转载时请带上原文链接,谢谢。

浙公网安备 33010602011771号