源码说明
| 项目 | 仓库名称 | 说明 |
|---|---|---|
| 前端 | marsview-enterprise-front | 前端代码,包含编辑器和访问端 |
| 编辑器后端 | marsview-enterprise-node | 编辑器对应后端接口 |
| 访问端后端 | marsview-enterprise-node-admin | 访问端对应后端接口 |
| 工作流前端 | marsview-workflow-front | 工作流前端 |
| 模型后端 | marsview-enterprise-model | 模型和工作流后端 |
源码下载
| 名称 | 地址 |
|---|---|
| 前端 | marsview-enterprise-front |
| 工作流前端 | marsview-workflow-front |
| 编辑器后端 | marsview-enterprise-node |
| 访问端后端 | marsview-enterprise-node-admin |
| 模型后端 | marsview-enterprise-model |
环境安装
Node 版本最好是当前最新稳定版本,推荐>=18 ,如果已经安装过了,可忽略。
本地环境
- 安装
nodev22.13.0版本,下载地址:node官方地址 - 安装
pnpm执行命令:npm i -g pnpm 5. 测试pnpm命令:pnpm -v - 安装
nodev22.13.0版本,下载地址:node官方地址
线上环境
YUM安装
- 通过yum安装node环境。
sudo yum install nodejs -y- 测试node版本
node -vNVM 安装(可选)
如果YUM安装的node版本过旧或低于18,可尝试使用NVM切换版本。
# 安装nvm命令
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
# 或者
curl -o- https://gitee.com/mirrors/nvm/raw/v0.39.1/install.sh | bash
# 安装完成后,加载终端配置
source ~/.bashrc
# 安装当前稳定版本node
nvm install stable
# 也可以安装指定版本(如果安装了stable版本后,无需再安装指定版本)
nvm install 18
# node安装成功后,最后安装pnpm
npm i -g pnpm安装 PM2
npm i -g pm2环境检测
node -v
npm -v
pnpm -v注意:
- 如果正常显示各个版本号,说明本次环境安装成功。
- 本地环境需要安装node和pnpm,线上服务器环境需要安装node、pm2即可。
- 安装完成node环境以后,会自带npm命令。
数据库脚本执行
默认启动marsview-enterprise-node项目时,会自动执行数据库文件,也可以手动运行node项目中的init.sql脚本文件,每次脚本更新时,会更新到sql更新日志.md文件中。
默认账号:admin@marsview.com
默认密码:admin
- 新客户完整运行数据库脚本即可。
- 老客户需增量更新脚本,在marsview-enterprise-node中包含sql更新日志.md,拷贝增量sql运行即可。
编辑器后端部署
克隆后端代码marsview-enterprise-node,修改服务配置,安装依赖,最后启动服务。
修改配置
- 请根据下面配置,在
marsview-enterprise-node项目中创建一个.env文件,并修改对应的配置。
# MySQL数据库配置
SERVER_HOST = http://localhost
# Node服务器端口
SERVER_PORT = 3001
# 服务器IP地址
DATABASE_HOST =
# 数据库端口
DATABASE_PORT = 3306
# 数据库用户名
DATABASE_USER = root
# 数据库密码
DATABASE_PASSWORD =
# 数据库名称
DATABASE_NAME = mars
# 飞书应用配置,用来发送飞书消息(暂时可忽略)
FEISHU_APP_ID =
FEISHU_APP_SECRET =
# JWT签名密钥和过期时间
JWT_SECRET = marsview-1688
JWT_EXPIRES_IN = 5d
# 文件上传,OSS服务配置
# OSS_TYPE: minio | baidu | aliyun
OSS_TYPE = baidu
# 只有minio需要
OSS_PORT = 9000
# 是否使用HTTPS
OSS_USESSL = false
# 阿里云OSS需要填写区域,如oss-cn-hangzhou
OSS_REGION = oss-cn-guangzhou
# 百度云OSS填写域名、minio填写IP地址
OSS_ENDPOINT = https://bj.bcebos.com
OSS_BUCKET = marscloud
OSS_ACCESSKEY =
OSS_ACCESSKEYSECRET =
# CDN域名,若没有,可填空
OSS_CDNDOMAIN = https://marscloud.cdn.bcebos.com
# 邮箱服务配置
EMAIL_HOST = smtp.163.com
EMAIL_PORT = 465
EMAIL_USER = marsview@163.com
EMAIL_PASSWORD = M***************6
# 微信登录配置,没有可默认为空
WECHAT_APP_ID =
WECHAT_APP_SECRET =
# 大模型配置
AI_BASE_URL = https://c-z0-api-01.hash070.com/v1
AI_KEY =
MODEL = gpt-4.1-mini
# 模型服务调用地址
MODEL_BASE_URL = http://api-model.marsview.com.cn
# 启用后端模型服务,此服务需付费使用(未付费开启会导致页面创建报错)
ENABLE_MODEL_SERVICE = true
# 系统默认登录账号
USERNAME = admin@marsview.com
# 系统默认登录密码
PASSWORD = admin
- 飞书配置可直接跳过。
- 邮箱配置主要用于用户注册,企业客户不建议开放注册功能。
- 大模型配置主要用于自定义组件接入大模型,此处效果不佳,也可跳过。
- 普通客户,可关闭ENABLE_MODEL_SERVICE。付费客户需要设置MODEL_BASE_URL。
安装依赖
npm i
# 或者
pnpm i启动服务
npm run dev
# 或者
pnpm run dev如果控制台不报错,说明服务启动正常。
线上启动
- 通过ssh 工具登录远程服务器。
- 通过npm命令安装pm2软件:npm i -g pm2,如果已经安装,可忽略。
- 启动后端
# cd 进入后端根目录
pm2 start main.js --name marsview-node访问端后端部署
克隆后端代码marsview-enterprise-node-admin,修改服务配置,安装依赖,最后启动服务。
修改配置
- 请根据下面配置,在
marsview-enterprise-node-admin项目中创建一个.env文件,并修改对应的配置。
# 请参考此配置文件,创建一份全新的 .env 文件,系统只会加载 .env 文件
# 数据库ip
DB_HOST=127.0.0.1
# 数据库端口
DB_PORT=3306
# 数据库用户名
DB_USERNAME=root
# 数据库密码
DB_PASSWORD=
# 数据库名
DB_NAME=mars
# JWT 密钥
JWT_SECRET=your_jwt_secret_key
# OSS服务类型
# OSS_TYPE: minio | baidu | aliyun
OSS_TYPE = minio
#只有minio需要
OSS_PORT = 9000
# 是否使用HTTPS
OSS_USESSL = false
# 阿里云OSS需要填写区域,如oss-cn-hangzhou
OSS_REGION = oss-cn-guangzhou
# 百度云OSS填写域名、minio填写IP地址
OSS_ENDPOINT = https://bj.bcebos.com
OSS_BUCKET = marscloud
OSS_ACCESSKEY =
OSS_ACCESSKEYSECRET =
# CDN域名
OSS_CDNDOMAIN = https://marscloud.cdn.bcebos.com
- 没有CDN,OSS_CDNDOMAIN字段可不填。
- OSS服务主要用于表单中的上传组件,如果不配置,上传组件能力会失效。
安装依赖
npm i
# 或者
pnpm i启动服务(本地运行模式)
npm run dev
# 或者
pnpm run dev如果控制台不报错,说明服务启动正常。
线上启动
- 通过ssh 工具登录远程服务器。
- 通过npm命令安装pm2软件:npm i -g pm2,如果已经安装,可忽略。
- 启动后端
# cd 进入后端根目录
pm2 start bootstrap.js --name marsview-admin前端部署
请依次修改packages/editor和packages/admin项目下的.env文件配置信息。
配置修改
# 接口地址
VITE_EDITOR_API=/api/editor
# 模型地址
VITE_MODEL_API=/api/model
# 后台访问地址
VITE_ADMIN_URL=https://admin.marsview.com.cn
# CDN 地址(前端静态js、css、图片等资源加载地址前缀,不填时,默认使用当前服务器IP+端口)
VITE_CDN_URL=https://marsview.cdn.bcebos.com
# 文档地址
VITE_DOCS_URL=https://docs.marsview.com.cn
# LOGO地址(支持本地路径和CDN地址)
VITE_LOGO_URL=/imgs/mars-logo.png
# LOGO黑暗背景(支持本地路径和CDN地址)
VITE_LOGO_DARK_URL=/imgs/mars-logo-dark.png
# 系统名称
VITE_APP_NAME=MarsView
# 系统备案号
VITE_ICP=沪ICP备2024101697号-1
# 显示微信登录(企业客户填false)
VITE_LOGIN_WECHAT=false
# 微信登录appid(企业客户可不填)
VITE_WECHAT_APPID=wxba2aa46f793407b2
# 微信登录重定向地址(企业客户可关闭)
VITE_WECHAT_REDIRECT=http%3A%2F%2Fwww.marsview.com.cn%2Flogin
# 客户版(开启后会屏蔽登录页面注册、找回密码功能,企业客户可打开)
VITE_CUSTOMER=true
# 客服地址(支持本地路径和CDN地址,不填时,默认不展示)
VITE_SERVICE_URL=/imgs/kefu_qrcode.png
# 允许发布环境,development时,只能发布到测试环境
VITE_ALLOW_ENV=production
# 开启后端模型(用于动态建表,后端编排,需要搭配服务端代码使用,付费服务)
VITE_BACKEND_MODEL=false
# 开发环境:低代码接口代理地址,仅在本地开发时使用,线上使用nginx配置反向代理
VITE_EDITOR_PROXY=http://api-editor.marsview.com.cn
# 开发环境:低代码模型代理地址,仅在本地开发时使用,线上使用nginx配置反向代理
VITE_MODEL_PROXY=http://api-model.marsview.com.cn
# 模型后台服务地址
VITE_MODEL_URL=https://api-model.marsview.com.cn温馨提示: 如果有OSS或者minio服务,建议把editor项目下public/static下面静态脚本上传到OSS。
- 上传前端JS文件到OSS或者minior服务器。
- 修改VITE_CDN_URL地址为OSS访问地址。
- 如果没有OSS服务,VITE_CDN_URL可配置为当前编辑器访问IP+端口。
安装依赖
# cd 进入到项目根目录
pnpm i修改代理
本地启动时,默认接口会代理到线上,可修改.env文件中的代理配置
# 修改地址为自己后端地址
VITE_EDITOR_PROXY=http://localhost:3001启动项目
# 在项目根目录,启动编辑器项目
pnpm start:editor
# 在项目根目录,启动admin项目
pnpm start:admin启动以后,用浏览器打开,确保项目正常登录、访问项目和页面。
项目打包
pnpm build会同时编译:editor 和 admin 项目,最终在项目根目录生成dist文件夹。
项目上传
将打包后的项目(dist目录下),手动上传到服务器nginx目录下即可。
域名解析
场景:假设你有一个域名是marsview.com.cn,需要添加5个DNS解析,分别如下:
| 访问域名 | 主机记录 | 记录值 | 描述 |
|---|---|---|---|
| marsview.com.cn | @ | 服务器公网IP | 主站地址 |
| www.marsview.com.cn | www | 服务器公网IP | 主站地址 |
| admin.marsview.com.cn | admin | 服务器公网IP | 后台服务 |
| docs.marsview.com.cn | docs | 服务器公网IP | 文档服务 |
| api-editor.marsview.com.cn | api-editor | 服务器公网IP | 编辑器API服务 |
| api-model.marsview.com.cn | api-model | 服务器公网IP | 模型API服务 |
| api-admin.marsview.com.cn | api-admin | 服务器公网IP | 模型API服务 |
Nginx配置
前端依赖nginx服务器,建议在conf.d目录或者vhost目录创建5个配置文件。
editor.conf配置
server_name配置域名时,需提前在云服务器上做DNS解析,修改紫色部分即可。
server {
listen 80;
server_name www.marsview.com.cn;
root /workspace/marsview/dist/editor;
index index.html index.htm login.html;
location / {
root /workspace/marsview/dist/editor;
if ($request_filename ~* \.html?$) {
# 禁用index.html缓存,这句很重要
add_header Cache-Control "no-cache";
}
try_files $uri $uri/ /index.html;
}
# 自定义组件调用大模型
location /api/ai/stream {
proxy_pass http://127.0.0.1:3001;
proxy_buffering off;
proxy_cache off;
proxy_set_header Connection '';
proxy_http_version 1.1;
chunked_transfer_encoding on;
}
# 代理编辑器后端
location ^~/api/editor {
proxy_pass http://127.0.0.1:3001;
}
# 代理模型后端
location ^~/api/admin {
proxy_pass http://127.0.0.1:3002;
}
# 此代理只有开通后端模型客户需要添加
location ^~/api/model {
proxy_pass http://127.0.0.1:7001;
}
}admin.conf配置
server {
listen 80;
server_name admin.marsview.com.cn;
root /workspace/marsview/dist/admin;
index index.html index.htm login.html;
location / {
root /workspace/marsview/dist/admin;
if ($request_filename ~* \.html?$) {
# 禁用index.html缓存,这句很重要
add_header Cache-Control "no-cache";
}
try_files $uri $uri/ /index.html;
}
# 代理编辑器后端
location ^~/api/editor {
proxy_pass http://127.0.0.1:3001;
}
# 代理模型厚度
location ^~/api/admin {
proxy_pass http://127.0.0.1:3002;
}
# 此代理只有开通后端模型客户需要添加
location ^~/api/model {
proxy_pass http://127.0.0.1:7001;
}
}api-editor.conf配置(编辑器接口服务)
server {
listen 80;
server_name api-model.marsview.com.cn;
location / {
proxy_pass http://127.0.0.1:3001;
}
}api-admin.conf配置(模型接口服务)
server {
listen 80;
server_name api-admin.marsview.com.cn;
location / {
proxy_pass http://127.0.0.1:3002;
}
}api-model.conf配置(模型接口服务)
server {
listen 80;
server_name api-model.marsview.com.cn;
location / {
proxy_pass http://127.0.0.1:7001;
}
}默认可在conf.d目录分别创建上面5个配置文件,但需要在nginx.conf配置中include /etc/nginx/conf.d/*.conf,这个很重要,否则子配置不会生效。
常见问题汇总
安装依赖太慢
可以设置一下npm镜像,默认会从国外下载,配置镜像以后,从阿里镜像服务器拉取npm包。
npm config set registry https://registry.npmmirror.comNode操作命令
启动项目:
pm2 start main.js --name marsview-editormain.js 为 项目入口;marsview-editor 为服务名称,可以随意修改。
关闭项目:
pm2 stop marsview-editor重启项目:
pm2 restart marsview-editor删除项目:
pm2 delete marsview-editor
Nginx 操作命令
启动 Nginx 服务:
systemctl start nginx不同的版本和系统,启动命令略有差异。
停止 Nginx 服务:
systemctl stop nginx重启 Nginx 服务:
systemctl reload nginx
