ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何用 Docker Compose 把 n8n-workflows 文档站部署到生产环境?

如何用 Docker Compose 把 n8n-workflows 文档站部署到生产环境? 如何用 Docker Compose 把 n8n-workflows 文档站部署到生产环境【免费下载链接】n8n-workflowsall of the workflows of n8n i could find (also from the site itself)项目地址: https://gitcode.com/GitHub_Trending/n8nworkflo/n8n-workflowsn8n-workflows 是一个包含 4000 多条 n8n 工作流 JSON 的仓库附带一个 FastAPI 搜索服务Web 界面 SQLite FTS5 全文检索。如果你的团队需要内网自托管这套文档站而不是使用项目托管的在线页面那么仓库根目录下的 DEPLOYMENT.md、docker-compose.yml 和 docker-compose.prod.yml 就定义了完整的部署路径。这篇文章覆盖的任务是在一台装有 Docker 和 Docker Compose 的服务器上用 Compose 把文档站跑起来并通过健康检查验证然后按文档给出的可选分支接上 Traefik 反向代理/HTTPS 和 Prometheus 监控。文中所有命令、配置和验证方式均来自项目文档。部署前先了解这套服务由什么构成生产部署由两个 Compose 文件叠加而成理解它们的分工能避免后续排查时迷路docker-compose.yml基础定义。workflows-docs服务由 Dockerfile 构建镜像名workflows-doc:latest固定容器名n8n-workflows-docs映射端口8000:8000挂载两个命名卷workflows-db:/app/database和workflows-logs:/app/logs默认ENVIRONMENTproduction、LOG_LEVELinfo重启策略unless-stopped。同文件中还有一个reverse-proxyTraefik v2.10服务挂在productionprofile 下默认不启动。docker-compose.prod.yml生产覆盖层。把restart改为always日志级别降到warning并设置ENABLE_METRICStrue、MAX_WORKERS4把宿主机./workflows目录以只读方式挂到/app/workflows限制容器资源内存上限 512M、CPU 0.5预留 256M/0.25同时添加指向域名workflows.yourdomain.com的 Traefik 路由、TLS 与 Basic Auth 标签。它还包含一个monitoring服务Prometheus端口 9090挂在monitoringprofile 下。Dockerfile 使用python:3.11-slim-bookworm基础镜像以非 root 用户appuserUID 1001运行内置健康检查每 30 秒用 Python 请求一次http://localhost:8000/api/stats启动命令是python -u run.py --host 0.0.0.0 --port 8000。也就是说端口 8000 是固定对外端口后文所有验证都围绕它。准备条件一台可以安装 Docker 与 Docker Compose 的 Linux 服务器文档未指定最低版本或硬件规格但生产覆盖层把容器 CPU/内存上限设为 0.5 核/512M服务器可用资源不应低于这个量级。8000 端口未被占用如果启用反向代理还需要 80、443ACME 签发和 8080Traefik dashboard。先把仓库克隆到服务器例如git clone https://gitcode.com/GitHub_Trending/n8nworkflo/n8n-workflows cd n8n-workflows反向代理方案会挂载./traefik/config、./ssl、./letsencrypt三个路径见 docker-compose.yml 与 docker-compose.prod.yml其中letsencrypt用于存放 ACME 证书Traefik 会自动创建traefik/config与ssl目录在仓库中不存在属于挂载占位容器启动时 Docker 会自动创建空目录。环境变量方面DEPLOYMENT.md 给出的可配置项包括ENVIRONMENT、LOG_LEVEL、HOST默认127.0.0.1、PORT默认8000、DATABASE_PATH默认database/workflows.db、WORKFLOWS_PATH默认workflows、ENABLE_METRICS、MAX_WORKERS、DEBUG、RELOAD。Compose 方式下这些值已由两个 compose 文件写死无需额外创建.env只有走 Python 直跑方案时.env.example 才需要参考。执行生产部署在仓库根目录执行文档 Quick Start 一节给出的生产命令docker compose -f docker-compose.yml -f docker-compose.prod.yml up -d --build这条命令会先构建workflows-docs镜像首次部署必须带--build构建会安装 requirements.txt 里的 Python 依赖然后后台启动服务。注意 DEPLOYMENT.md 的 Deployment Options 一节给出的命令是不带--build的up -d适合镜像已经构建过的重启场景首次部署请用上面带--build的 Quick Start 命令。如果想先在本地验证服务本身、不上代理文档给出的开发环境命令是docker compose -f docker-compose.yml -f docker-compose.dev.yml up --build它会以ENVIRONMENTdevelopment、DEBUGtrue、RELOADtrue启动并挂载源码目录见 docker-compose.dev.yml。这是可选的验证分支不是生产主路径。验证部署结果服务起来后按文档做三层检查健康检查接口。这是文档和 Dockerfile 健康检查共同使用的成功判定方式curl http://localhost:8000/api/stats/api/stats返回仓库统计信息见 README.md 的 API 端点表。能返回 JSON 即说明服务与数据库可用Dockerfile 中的 HEALTHCHECK 也是请求同一个地址失败 3 次后容器会被标记为不健康。应用日志。查看启动过程是否有报错docker compose logs -f workflows-docs docker exec workflows-docs tail -f /app/logs/app.log容器内日志文件位于/app/logs/app.log生产配置下LOG_LEVELwarning正常运行时输出较少。数据库侧抽查文档给出的方式用于排查数据库 locked类问题docker exec workflows-docs sqlite3 /app/database/workflows.db .tables可选接上 Traefik 反向代理与 HTTPSDEPLOYMENT.md 给出的命令是docker compose --profile production up -d它会启动基础文件里的reverse-proxy服务。但要注意域名路由、TLS 证书解析器myresolver和 Basic Auth 中间件这几个生产标签写在 docker-compose.prod.yml 中所以要让代理真正按你的域名 HTTPS 工作应把 prod 覆盖层一并加上docker compose -f docker-compose.yml -f docker-compose.prod.yml --profile production up -d启用代理前必须替换文件中的占位值这些是读者必须提供的workflows.yourdomain.comdocker-compose.prod.yml 第 23 行路由规则里的 Host 占位域名替换为你实际解析到该服务器的域名。adminexample.comdocker-compose.yml 中 Traefik 的 ACME 邮件替换为你的邮箱Lets Encrypt 通过myresolver自动签发证书。admin:$$2y$$10$$...prod 文件里的 Basic Auth 标签中的...是占位符。文档给出的生成方式是htpasswd -nb admin yourpassword把生成的哈希填入traefik.http.middlewares.workflows-docs-auth.basicauth.users标签。prod 文件的reverse-proxy段里还有一个完整示例哈希admin:$$2y$$12$$eImiTXuWVxfM37uY4JANjQ文档明确标注它只是密码examplepassword的示例不要在生产直接使用。代理启用后 80/443 流量由 Traefik 转发到 8000 端口dashboard 在 8080。文档同时给出静态资源缓存、安全响应头等 Traefik 中间件示例Cache-Control: public, max-age31536000、sslRedirect: true等可按需参考 DEPLOYMENT.md 的 Security Configuration 一节。可选启用 Prometheus 监控生产文件里ENABLE_METRICStrue已经打开指标输出文档给出的监控栈启动命令是docker compose --profile monitoring up -d启动后访问http://localhost:9090使用 Prometheus。需要说明一个仓库现状monitoring服务挂载了./monitoring/prometheus.yml作为配置docker-compose.prod.yml但该文件不在当前仓库里直接启用此 profile 前需要先自行准备这个配置文件否则 Prometheus 无法加载配置。常用运维操作数据库备份。生产配置的数据库在命名卷中文档给出的容器内备份方式docker exec n8n-workflows-docs cp /app/database/workflows.db /app/database/workflows.db.backup强制重建索引。工作流文件有更新或怀疑索引不一致时python run.py --reindex # 或通过 API curl -X POST http://localhost:8000/api/reindex更新应用。文档的更新流程是拉代码后重建git pull origin main docker compose down docker compose up -d --build常见问题排查DEPLOYMENT.md 列出的三个生产常见问题及文档给出的处理方式端口 8000 被占用先确认占用进程再换端口启动lsof -i :8000 docker compose up -d -p 8001:8000内存不足用docker stats查看容器实际占用再调整 docker-compose.prod.yml 中deploy.resources的 limits。当前文档默认上限是 512M 内存 / 0.5 CPU。Database locked 报错文档给出的检查与修复是针对宿主机database/目录的ls -la database/ chmod 664 database/workflows.db注意 Compose 部署中数据库位于workflows-db命名卷/app/database如果宿主机没有database/目录这条宿主机命令不适用应结合docker exec workflows-docs sqlite3 /app/database/workflows.db .tables确认容器内数据库可访问。边界与限制资源上限512M/0.5 CPU和MAX_WORKERS4是文档写死的默认值文档没有给出按负载调参的依据扩容时只按文档修改deploy.resources一节即可不要自行推断合理值。文档的 Scaling Load Balancing 一节给出了--scale workflows-docs3与 Traefik loadbalancer 标签示例但它依赖多个实例共享workflows-db卷时的 SQLite 写入行为文档未对此作进一步说明属于参考示例而非推荐方案。安全侧文档给出的检查清单非 root 用户、HTTPS、防火墙、强认证、访问日志、备份见 DEPLOYMENT.md 末尾容器非 root 运行已在 Dockerfile 中落实。完成curl http://localhost:8000/api/stats的验证后这套文档站即处于文档定义的生产状态后续按 Migration Updates 一节的流程做版本更新即可。【免费下载链接】n8n-workflowsall of the workflows of n8n i could find (also from the site itself)项目地址: https://gitcode.com/GitHub_Trending/n8nworkflo/n8n-workflows创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表