用途 本技能面向 Windmill 开源工作流引擎的自托管部署与脚本开发。Windmill 支持用 TypeScript、Python、Go、Bash 等语言构建内部工具;本技能重点在于自托管配置与带 PDF/图像处理能力的自定义 Worker 镜像。
主要能力 基于 Docker Compose 部署,访问入口为 https://windmill.example.com,默认登录为 admin@windmill.dev / changeme。架构为 Caddy → Server(端口 8000)→ PostgreSQL,Server 提供 API 与前端;Workers 执行任务并拉起作业容器;LSP(端口 3001)负责编辑器智能提示;PostgreSQL 保存状态与作业队列。
常用操作 查看日志:docker compose logs -f windmill-worker;重启 Worker:docker compose restart windmill-worker;构建自定义 Worker:docker compose build windmill-worker;扩容在 docker-compose.yml 中设置 replicas: N。
自定义 Worker 在 ghcr.io/windmill-labs/windmill:main 基础镜像上安装 poppler-utils、libvips-tools,并加入 pdfcpu(约 150MB 开销)。可用工具包括 pdftotext、pdfimages、pdftoppm、pdfcpu、vips、vipsthumbnail,用于 PDF 文本/图像提取、格式转换、合并拆分、加密水印以及快速缩放。脚本示例可通过 Bun 的 $ 调用上述命令,例如 pdftotext -layout、pdftoppm -png -r 300、vipsthumbnail、pdfunite。libvips 相比 ImageMagick 更快(4-8 倍)、内存占用更低(约 200MB 对约 3GB),适合内存受限环境。
资源建议 Server 1GB/1.0 CPU,Worker 1.5GB/1.0 CPU,LSP 512MB/0.5 CPU;扩缩规则约为每 1 vCPU 与 1-2GB RAM 配置 1 个 Worker。
限制与排查 Worker 需挂载 /var/run/docker.sock(只读)。常见问题:作业卡队列检查 Worker 日志与数据库连接;自定义工具缺失需确认使用自定义镜像并重建;内存崩溃可提高 mem_limit 或降低并发;权限错误检查 Docker socket 挂载;LSP 异常用 docker compose ps windmill-lsp 查看。官方文档涵盖简介、自托管、Worker 组、脚本与流程快速入门。具体版本、收费与平台支持等资料暂未提供。