部署指南
gflow 是 Go 单二进制 + 前端静态资源,2C2G 起步即可。Docker Compose 一键起全栈,或 systemd 裸机部署。
Docker Compose 一键部署(推荐)
bash
cd gflow
# 1. 构建后端(预编译二进制)+ 前端镜像
make docker-build
# 2. 配置环境变量(至少改 JWT_SECRET / POSTGRES_PASSWORD)
cp .env.example .env && vi .env
# 3. 启动全栈
docker compose up -dcompose 拉起四个服务:
| 服务 | 说明 |
|---|---|
postgres | 首次启动自动执行 00.init.sql 建表 + 种子数据 |
redis | 缓存与(多实例时)分布式锁 |
backend | gflow-server(REST API,不直接对外暴露) |
frontend(nginx) | 前端静态资源 + 入口反代 |
访问 http://localhost/gflow/,默认账号 admin / admin123(首次登录改密)。
双实例 active-active 高可用部署不使用此 compose,见仓库
docs/deploy/deployment.md第七节。
裸机 / systemd
bash
# 后端:Go 编译单二进制。make build 为 API-only 版(不嵌入前端,前端走外部 nginx);
# 需要单二进制全栈时用 make release(先构建前端再 go build -tags embed 嵌入)
cd gflow && make build # 产出 dist/gflow-server
./dist/gflow-server # 在 gflow 目录运行,自动读取 configs/config.yaml
# 前端:构建产物由 nginx 托管(含 base 路径的构建走 make web)
cd gflow && make web # 内部执行 vite build,产物在 gflow-ui/distdeploy/systemd/ 提供服务单元模板;deploy/nginx/ 提供前端反代配置。服务端默认监听 :8080。
生产清单
- [ ] 修改
JWT_SECRET、数据库口令,勿用默认值 - [ ] PostgreSQL 生产实例 + 定期备份(历史表只增不减)
- [ ] HTTPS:nginx 前置证书
- [ ] 多实例部署时启用 Redis 分布式锁(
WorkflowEngineBuilder.SetLocker注入),对流程实例行级互斥 - [ ] 日志收集;
logs/目录磁盘水位告警 - [ ] 演示/生产账号分离,管理员开启操作审计
数据库初始化
- gflow:postgres 容器首次启动自动执行
scripts/00.init.sql(引擎 6 张表 + 应用系统表 + 种子) - 仅引擎:执行 rulego-bpm 的
scripts/00.init_bpm_pg.sql/00.init_bpm_mysql.sql
环境要求
见环境要求。演示环境参考:1.9G 内存云主机运行 gflow 全栈稳定。