AI 发布平台 - 部署说明
快速打包
# 方式一:双击运行
deploy\build.bat
# 方式二:PowerShell
powershell -File deploy\package.ps1
输出:deploy/publish_deploy.zip
服务器目录结构
解压 publish_deploy.zip 到 /usr/local/publish_dishboard/,得到:
/usr/local/publish_dishboard/
frontend/
index.html ← 前端入口
server.js ← Node.js 静态服务(端口 30080)
assets/ ← JS / CSS 静态资源
app.jar ← Spring Boot 后端(端口 30081)
database.db ← SQLite 数据库
宝塔面板部署步骤
1. 后端(Java)
- 项目名称:
publish_backend - 项目端口:30081
- 启动文件:
/usr/local/publish_dishboard/app.jar - 运行目录:
/usr/local/publish_dishboard/ - 启动命令:
java -jar app.jar
2. 前端(Node.js)
- 项目名称:
publish_dishboard - 项目端口:30080
- 启动文件:
/usr/local/publish_dishboard/frontend/server.js - 运行目录:
/usr/local/publish_dishboard/frontend/ - 环境变量:
STATIC_DIR=/usr/local/publish_dishboard/frontendUPLOADS_DIR=/usr/local/publish_dishboard/frontend/uploads
3. Nginx 反向代理
# 前端(静态文件 + Vue Router)
location /publish_dishboard/ {
rewrite ^/publish_dishboard(/.*)$ $1 break;
proxy_pass http://127.0.0.1:30080;
}
# 后端 API
location /publish_server/ {
rewrite ^/publish_server(/.*)$ $1 break;
proxy_pass http://127.0.0.1:30081;
}
# API 代理(前端 useApi.js 的 baseURL: '/api')
location /api/ {
rewrite ^/api/(.*) /api/$1 break;
proxy_pass http://127.0.0.1:30081;
}
# 静态资源(前端 assets)
location /assets/ {
alias /usr/local/publish_dishboard/frontend/assets/;
expires 30d;
add_header Cache-Control "public, immutable";
}
# 上传文件(后端存储的封面图等)
location /uploads/ {
proxy_pass http://127.0.0.1:30081/uploads/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
域名访问
- 前端:
https://www.1415243231.top/publish_dishboard - 后端:
https://www.1415243231.top/publish_server
数据库权限
如果遇到 Permission denied on database.db:
chown -R www:www /usr/local/publish_dishboard
chmod -R 755 /usr/local/publish_dishboard
然后重启 Java 项目。
完整部署流程
- 本地运行
deploy\build.bat,生成deploy\publish_deploy.zip - 上传 zip 到 NAS:
/usr/local/publish_dishboard/ - 解压覆盖
- 重启前后端两个项目(宝塔面板操作)
- 访问
https://www.1415243231.top/publish_dishboard