# Docker 部署
注意:如果你想部署到heroku,请查看 部署到Heroku
# 目标读者
本文档的目标读者为:本系统的开发和实施人员,希望在本地尝试我们服务的开发者
# 先决条件
支持 docker 和 docker compose 的 Linux / MacOS/ WSL
提示
目前不支持原生Windows,可能需要额外的配置,请通过社区 联系我们 (opens new window) 以获取Windows 支持,我们非常乐意帮助你。
通过 社区 (opens new window) 联系我们,获取访问 platform 一键运行配置的 repo 的权限, 并且有一个可以工作的 github SSH 密钥配置 (opens new window)
注意
如果您没有权限访问我们的 repo,下述的命令不会执行成功的
# 安装
执行以下命令安装一体化平台:
curl -s https://www.muyan.io/muyan.sh | bash
一体化安装器包括以下组件和工具:
- 来自 https://hub.docker.com/r/muyantech/frontend (opens new window) 的Muyan平台前端的最新版本
- Muyan平台后端的最新版本
- Redis的最新版本
- PostgreSQL版本15.7
- 用于PostgreSQL管理的PGAdmin容器的最新版本
你可以查看脚本内容以了解其所做的操作。
以下是安装过程的基本概述:
- 克隆平台仓库到
./platform
文件夹 - 运行 Docker Compose 启动所有容器
# 系统更新
# 更新前后端的版本
# 在 docker-compose.yml 文件所在目录直接运行如下命令
docker-compose down && docker-compose pull && docker-compose up -d
2
# 更新工作区
# 在 docker-compose.yml 文件所在目录直接运行如下命令
# 如果本地文件有更改,请先备份该目录,以避免工作成果被覆盖
git stash && git pull && git stash apply
2
3
# 安装及更新参考视频
如下是在 wsl2 下的安装和升级过程的视频示意,供您参考,Linux 及 MacOS 上的安装过 程与此类似。
视频中输入的命令可以参考下面代码
# 确认 docker 和 docker compose 命令可以正常执行
docker --version
docker compose --version
# 安装平台前后端及依赖服务的 docker image 并启动
# 依据网络连接和计算机硬件配置不同,可能需要 10 分钟甚至更久
curl -s https://www.muyan.io/muyan.sh | bash
# 更新前后端的版本
# 默认会安装到 platform 目录
cd platform
# 拉取最新的前后段 Docker 镜像并重新启动所有服务
# 依据网络连接速度,可能需要 10 分钟甚至更久
docker compose pull;docker compose down;docker compose up -d
2
3
4
5
6
7
8
9
10
11
12
13
14
# 访问
# 本机访问
请通过 http://localhost:3000 (opens new window)访问前端。它将自动连接到运行在 http://localhost:8080 (opens new window) 的后端。
# 局域网访问
系统默认开启局域网访问,你可以通过局域网的IP地址访问系统,例如:http://192.168.0.2:3000
,无需额外配置。
# 开发
# 前端
我们的低代码平台使用统一的前端,无需你自己开发。
对于任何新的前端组件需求,请在这里 (opens new window)提交功能请求。
# 后端
关于后端开发的详细指南,请参考中文文档。
开发文档目前正在翻译成英文。
# 开始开发
恭喜您成功安装了平台!以下是开始开发并充分利用您的新设置的方法。
# 导航至项目目录
打开终端并运行: cd platform
# 探索项目结构
花点时间熟悉项目目录和文件的布局,整体开发环境的目录结构及其解释如下所示
.
├── db-seed-data # 数据库种子数据目录
│ └── initdb # 数据库初始化脚本
│ ├── restore-dump.sh # 恢复数据库转储的Shell脚本
│ └── seed-data.dump # 用于种子初始数据的数据库转储文件
├── docker-compose.yml # Docker Compose配置文件,用于容器化
├── muyan.sh # 平台的一键安装脚本
├── runtime # 运行时相关的目录和文件
│ ├── attachments # 用户上传附件的存储位置,docker 内映射到 /app/attachments
│ ├── database # 数据库相关文件和目录
│ │ ├── data # PostgreSQL 数据库数据文件
│ │ └── pgadmin # PostgreSQL管理工具配置(来自模板仓库)
│ │ ├── config # PgAdmin配置文件
│ │ │ └── servers.json # PgAdmin服务器配置
│ │ └── pgpass # PgAdmin的PostgreSQL密码配置
│ └── pgadmin # 运行时生成的PgAdmin配置(不在git仓库中)
│ ├── config # 运行时PgAdmin配置
│ ├── data # 运行时PgAdmin数据存储
│ │ ├── azurecredentialcache # Azure凭证缓存,用于云部署
│ │ ├── pgadmin4.db # PgAdmin数据库文件
│ │ ├── sessions # 会话数据存储
│ │ └── storage # PgAdmin的通用存储
│ │ └── db_muyan.cloud # 特定数据库存储
│ │ └── pgpass # PgAdmin的PostgreSQL密码配置
│ ├── log # PgAdmin日志文件
│ └── pgpass # 另一个PgAdmin的PostgreSQL密码配置
├── server # 服务器端应用程序代码,在 docker 内映射到 /app/plugin
│ ├── build.gradle # 服务器的Gradle构建配置
│ ├── data # 运行时种子数据文件夹,在Docker内映射到 /app/plugin/data
│ │ ├── attachments # 服务器特定的附件文件
│ │ ├── css # CSS样式文件
│ │ ├── groovy # Groovy脚本(可能用于服务器端逻辑)
│ │ └── production # 生产数据和配置
│ │ ├── muyan # 默认租户名称
│ │ │ └── [各种CSV文件] # 用于不同领域模型和配置的CSV文件
│ │ └── Organization.csv # 租户定义的根组织配置
│ ├── gradle # Gradle包装器文件
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar # Gradle包装器JAR
│ │ └── gradle-wrapper.properties # Gradle包装器属性
│ ├── gradlew # Unix类系统的Gradle包装器脚本
│ ├── gradlew.bat # Windows的Gradle包装器脚本
│ ├── plugin # 插件相关的文件和目录
│ │ ├── build.gradle # 插件的Gradle构建配置
│ │ └── src # 插件源代码
│ │ └── main
│ │ └── java
│ │ └── tech
│ │ └── muyan
│ │ └── plugin
│ │ └── PluginExample.java # 插件实现示例
│ └── settings.gradle # 服务器项目的Gradle设置
└── token.txt # 包含访问Docker镜像的令牌的文件
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# 开始编码
万事俱备,只欠应用,请赶快开始开发您的应用吧! 以下是一些简易的文档章节
- 您可以跟着我们,从零开始构建一个简易的 CRM 系统
- 如果您要开始系统设计,可以参考 系统设计指南
- 如果您要进行系统的领域模型、表单、动作等的定义,可以参考 数据导入 及 CSV 文件模板
- 如果您要进行插件开发,可以参考 插件开发
# 管理您的应用程序
要管理应用程序的生命周期,请在 platform
目录内使用以下命令:
# 启动应用程序
docker compose up -d
# 停止应用程序
docker compose down
2
3
4
5
# 升级到新版本
当牧言低代码平台发布了新版本后,只需要在您的工作区(包含 docker-compse.yml
文件的
目录下), 执行如下的命令即可将您的本地工作区中的平台版本升级。
# 从 docker hub 拉取最新的镜像
docker compose pull
# 重新启动运行中的后端容器
docker compose up -d
2
3
4
5
升级后,可以参考下图,确认当前运行中的前端和后端的版本
# 相关配置
# 更改默认租户
租户是系统中的一个重要配置。它主要有两个用途:
- 它作为数据库中 DomainClass 对应数据表的前缀。
- 它用作保存在数据库中的所有记录的租户列 (
tenant
) 列的值。
要更改默认租户,请按以下步骤操作:
# 1. 更新配置
更改 TENANT_ID
环境变量或修改 docker-compose.yml
配置文件(不推荐):
设置
TENANT_ID
环境变量:- 对于类 Unix 系统(Linux,macOS):
export TENANT_ID=your_new_tenant_id
1 - 对于 Windows:
set TENANT_ID=your_new_tenant_id
1
- 对于类 Unix 系统(Linux,macOS):
或直接修改 docker-compose.yml 文件(不推荐):
- TENANT_ID=${TENANT_ID:your_new_tenant_id}
1
2
# 2. 更新文件结构
重命名特定租户的数据目录:
mv server/data/production/muyan server/data/production/your_new_tenant_id
# 3. 修改引导组织
编辑 server/data/production/Organization.csv
文件。将 tenant
和 subDomain
字段更改为与新租户 ID 匹配。例如:
原始内容:
name,parent.name,customiseEnable,tenant,subDomain(*)
muyan,NULL,Y,muyan,muyan
2
修改后的内容:
name,parent.name,customiseEnable,tenant,subDomain(*)
your_organization_name,NULL,Y,your_new_tenant_id,your_new_tenant_id
2
# 4. 重启系统
在进行这些更改后,请重启您的系统。这将触发使用新的租户ID重新导入所有种子数据的过 程。
# 重要注意事项
更改默认租户将影响所有新的数据库操作和现有数据。
请记住在进行这些更改后重启您的应用程序,以确保新的配置生效并启动种子数据重新导入 过程。
# 启用 OpenAI 接口
如果你想启用AI功能,请参考下面的截图了解如何设置 OpenAI 令牌
如下是启用 OpenAI 接口,以启用智能助手与 LLM_ENGINE 的逻辑引擎的说明
# 启用 anthropic API 接口
如果你希望使用 anthropic 而不是 OpenAI 的 API 作为智能助手和 LLM_ENGINE 动态逻辑引擎,请参考下面的相关设置
- Set ai.provider DynamicConfig to
claude
- Set API 相关设置如下
# 启用 SMTP 发送邮件
SMTP 发送邮件的相关配置在系统动态配置的
邮件配置
-> SMTP 相关配置
下,包括 SMTP 的服务器地址、端口、用户名、密码、是
否启用 SSL/TLS 等。
此外,在 邮件配置
-> HTML模板
下,可以更新默认的邮件模板,邮件模板是作为附件
保存在该配置中。
# 附加说明
# 端口列表
以下是每个组件的端口列表:
组件 | 端口 | 连接方法 |
---|---|---|
前端 | 3000 | http://localhost:3000 (opens new window) |
后端 | 8080 | http://localhost:8080 (opens new window) (通过前端访问) |
后端调试端口 | 5050 | 在IDEA内连接到localhost的5050端口 |
Redis | 6379 | redis-cli |
PostgreSQL | 5432 | psql -d application -h localhost -p 5432 -U postgres |
PGAdmin | 5433 | http://localhost:5433 (opens new window) |
# 默认用户名及密码
以下是每个组件或系统用户的默认用户名和密码列表:
组件 | 用户名 | 密码 |
---|---|---|
PG Admin | [email protected] | secret |
Postgres | postgres | password |
后端管理员用户 | [email protected] | password |
后端开发者用户 | [email protected] | password |
以下是数据库连接信息:
用户名 | 密码 | 数据库 |
---|---|---|
postgres | password | application |
# Docker数据卷
以下是每个组件的Docker 数据卷路径列表:
组件 | Docker内的路径 | 主机上的路径 | 描述 |
---|---|---|---|
PostgreSQL | /var/lib/postgresql/data | ./runtime/database/data | PostgreSQL数据文件夹 |
PGAdmin | /var/lib/pgadmin | ./runtime/pgadmin/data | PGAdmin数据文件夹 |
PGAdmin | /pgadmin4/config | ./runtime/pgadmin/config | PGAdmin配置文件夹 |
PGAdmin | /var/log/pgadmin | ./runtime/pgadmin/log | PGAdmin日志文件夹 |
PGAdmin | /var/lib/pgadmin/storage/db_muyan.cloud/pgpass | ./runtime/pgadmin/pgpass | PGAdmin pgpass文件 |
后端 | /root/workspace | ./server | 后端代码工作区 |
后端 | /root/attachments | ./runtime/attachments | 上传的附件保存文件夹 |
# 进一步阅读
要获取更详细的文档、故障排除提示和社区支持,请访问:
我们很期待看到您构建的内容!
← 🎨 系统设计指南 💻 Dokku 部署 →