源码说明
| 项目 | 仓库名称 | 说明 |
|---|---|---|
| 前端 | 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文件,并修改对应的配置。
# 服务器IP地址
DB_HOST =
# 数据库端口
DB_PORT = 3306
# 数据库用户名
DB_USER = root
# 数据库密码
DB_PASSWORD =
# 数据库名称
DB_NAME = mars
# 模型数据库名称
MODEL_DB_NAME = mars_model
# JWT签名密钥和过期时间
JWT_SECRET = marsview
JWT_EXPIRES_IN = 5d
- 飞书配置可直接跳过。
安装依赖
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,修改服务配置,安装依赖,最后启动服务。
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
# JWT 过期时间
JWT_SECRET_EXPIRES_TIME=5d安装依赖
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模型后端部署
克隆后端代码marsview-enterprise-model,修改服务配置,安装依赖,最后启动服务。
模型后端修改配置
- 请根据下面配置,在
marsview-enterprise-model项目中创建一个.env文件,并修改对应的配置。
# 请参考此配置文件,创建一份全新的 .env 文件,系统只会加载 .env 文件
# 数据库ip
DB_HOST=
# 数据库端口
DB_PORT=3306
# 数据库用户名
DB_USERNAME=root
# 数据库密码
DB_PASSWORD=
# 数据库名
DB_NAME=mars_model
# JWT 密钥
JWT_SECRET=marsview
# 后端Node项目服务地址,模型和平台服务有通信,如果没有域名,对应IP+3002端口
MARSVIEW_ADMIN_SERVER_URL=http://api-admin.marsview.com.cn
# 前端CDN地址,没有CDN可以配置编辑器端IP+端口
CDN_URL=https://marsview.cdn.bcebos.com安装依赖
npm i
# 或者
pnpm i启动服务(本地运行模式)
npm run dev
# 或者
pnpm run dev如果控制台不报错,说明服务启动正常。
前端部署
请依次修改packages/editor和packages/admin项目下的.env文件配置信息。
前端编辑器配置
# CDN 地址(前端静态js、css、图片等资源加载地址前缀,不填时,默认使用当前服务器IP+端口)
VITE_CDN_URL=https://marsview.cdn.bcebos.com
# LOGO地址(支持本地路径和CDN地址)
VITE_LOGO_URL=/imgs/mars-logo.png
# 系统名称
VITE_APP_NAME=Marsview
# 系统标题
VITE_APP_TITLE=Marsview可视化搭建
# 系统备案号
VITE_ICP=沪ICP备2024101697号-1前端访问端配置
# CDN 地址(没有CDN时,可配置编辑器对应的IP+端口,静态资源默认放在了编辑器端)
VITE_CDN_URL=https://marsview.cdn.bcebos.com
# LOGO地址
VITE_LOGO_URL=/imgs/mars-logo.png
# 系统名称
VITE_APP_NAME=MarsView
# 系统标题
VITE_APP_TITLE=Marsview可视化搭建温馨提示:
- 如果没有OSS服务,VITE_CDN_URL可配置为当前编辑器访问IP+端口。
- VITE_LOGO_URL 如果需要自定义logo,请把logo放在项目的public目录下,并修改VITE_LOGO_URL为logo的相对路径。
前端工作流配置
# CDN 地址(没有CDN时,可配置编辑器对应的IP+端口,静态资源默认放在了编辑器端)
VITE_CDN_URL=https://marsview.cdn.bcebos.com安装依赖
# 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;
}
# 工作流代理
location /workflow {
# 请把 3000 改成工作流前端服务的端口
proxy_pass http://127.0.0.1:3000/workflow;
add_header Access-Control-Allow-Origin *;
}
# 工作流图片资源代理
location ~* ^/workflow/.*\.(gif|jpg|jpeg|png|bmp|swf|webp|svg)$ {
expires 360d;
proxy_pass http://127.0.0.1:3000;
}
# 工作流JS资源代理
location ~* ^/workflow/.*\.(js|css)$ {
expires 360d;
proxy_pass http://127.0.0.1:3000;
}
# 静态资源代理
location ~ .*\.(js|css)?$ {
expires 360d;
add_header Access-Control-Allow-Origin *;
}
}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
