SuperAPI AI 工具集

n8n-self-hosting

部署与运维

查看项目

更新于 10-15 20:30

技能介绍

用途:把一台全新的 Linux VM(Ubuntu/Debian,root 或 sudo SSH)部署成运行中、带 HTTPS 的生产级自托管 n8n,架构为 Docker Compose + Caddy 反向代理,Caddy 自动签发 Let's Encrypt 证书。适用于 Docker 自托管 n8n,不适用于 n8n Cloud,也不负责构建工作流(属该技能包其他部分)。

两种部署模式需先与用户确认:单实例(regular)模式为一个 n8n 进程、无额外服务、用 SQLite、在主进程执行工作流,适合单用户和轻中负载;队列(queue)模式为 main + N 个 worker、额外 Redis(队列)与 Postgres(数据库)、在 worker 上并行执行,适合高负载与横向扩展,内存下限约 4 GB,每个 worker 约需 1–2 GB。不确定时先用单实例。

流程:SSH 全程驱动,依次为预检 → 安装 Docker → 落项目 → 生成密钥 → 启动 → 验证 TLS → 交付。预检确认系统为 Debian/Ubuntu 类,DNS 已指向该机(比对 curl -s ifconfig.me 与 dig +short <fqdn>),80/443 端口对公网可达(含云安全组)。用 Docker 官方脚本装 Docker Engine 与 Compose 插件。选定 DATA_FOLDER(如 /opt/n8n),创建 caddy_config/ 与 local_files/,将模板文件传为指定名称:docker-compose.yml、caddy_config/Caddyfile、queue 模式额外 init-data.sh(chmod +x)与 .env。在目标机用 openssl 生成所有密钥并写入 .env(mode 600),替换占位符,N8N_ENCRYPTION_KEY 必须显式设置并让用户异地备份;queue 还需 POSTGRES_PASSWORD 与 POSTGRES_NON_ROOT_PASSWORD。启动前 grep REPLACE_WITH_ .env 应无输出。ufw 只放行 OpenSSH、80、443,不开放 5678/5432/6379。

启动与验证:docker compose up -d;queue 扩容用 docker compose up -d --scale n8n-worker=N。检查 docker compose ps 全部 healthy;docker compose exec n8n wget -qO- http://localhost:5678/healthz 返回 {"status":"ok"};docker compose logs caddy | grep -i 'certificate obtained';curl -fsS --retry 5 --retry-delay 10 https://<fqdn>/healthz。queue 模式需比对 main 与 worker 环境变量差异(仅公共 URL/代理变量可不同)。首次访问 https://<fqdn> 完成 owner 注册并启用 2FA。交付时给出 URL、项目位置、加密密钥与 Day-2 基础(更新/备份/恢复)。限制:不要盲目用 :latest,应固定 N8N_IMAGE_TAG;queue 不能用 SQLite;密钥只放 .env;不把行为类环境变量只加到 main。官方文档见 https://docs.n8n.io/deploy/host-n8n。