c3fbe4ab81
- 新增 deploy-server.sh: 后端部署脚本(rsync + npm install + pm2) - frp 隧道从暴露API(3333→13333)改为暴露PostgreSQL(5432→15432) - 后端部署到服务器 /opt/sbrain-server, pm2管理, 端口9333 - Nginx /api/ 从 127.0.0.1:13333 改为 127.0.0.1:9333 - 服务器 .env: DB_PORT=15432 连接frp隧道 - run.md 全面更新为新架构说明 - 新增 docs/20260802-SaaS+本地数据库.md 架构方案文档 - 移除本机后端 launchd 服务(后端已上服务器)
3.8 KiB
3.8 KiB
当前数据库是本机Homebrew PostgreSQL 15,数据库名为 bill_query,端口5432,仅监听 localhost;当前用户 freedak 是超级用户,本机认证方式为 trust。这适合本机开发,但不适合直接照搬到服务器生产环境。前端浏览器也不应直接连接PostgreSQL,必须通过后端API访问。
登录账号
| 用户名 | 密码 | 角色 |
|---|---|---|
| 总部管理员 | 123 | hq |
| 区域经理 | 123 | regional |
| 潘家园店长 | 123 | store |
| 商品部 | 123 | dept |
架构(2026-08-02 更新:SaaS + 本地数据库)
浏览器 → https://dm.all8ai.top
→ Nginx(服务器) → /api/ → 127.0.0.1:9333 (服务器后端, pm2管理)
→ frp隧道 127.0.0.1:15432 → 本机PostgreSQL:5432
- 前端:服务器 Nginx 静态文件
/var/www/dm.all8ai.top - 后端:服务器
/opt/sbrain-server,pm2 管理,端口 9333 - 数据库:本机 PostgreSQL 15,端口 5432,数据库 bill_query
- frp 隧道:暴露 PostgreSQL(5432→15432),服务器后端通过 15432 连接本机数据库
部署流程
前端部署
bash deploy.sh
构建前端 + scp 上传到服务器 /var/www/dm.all8ai.top。
后端部署
bash deploy-server.sh
rsync 同步代码到服务器 /opt/sbrain-server + npm install + pm2 重启。
本机 frp 隧道(launchd 系统级服务)
frpc 配置(/Users/freedak/frp/frpc.toml):
serverAddr = "152.136.182.184"
serverPort = 7000
loginFailExit = false
auth.token = "frp_gitea_2026"
[[proxies]]
name = "dm-db"
type = "tcp"
localIP = "127.0.0.1"
localPort = 5432
remotePort = 15432
已配置为 macOS launchd 系统级服务,开机自动启动,崩溃自动重启,与 IDE 无关。
| 服务 | plist | 日志 |
|---|---|---|
| frp 隧道 (5432→15432) | ~/Library/LaunchAgents/com.frp.client.plist |
~/Library/Logs/frpc.log |
管理命令
# 停止 frpc
launchctl bootout gui/$(id -u)/com.frp.client
# 启动 frpc
launchctl load ~/Library/LaunchAgents/com.frp.client.plist
# 查看日志
tail -f ~/Library/Logs/frpc.log
# 检查状态
pgrep -l frpc
curl -s https://dm.all8ai.top/api/health
手动启动 frpc(备用,launchd 未运行时)
cd /Users/freedak/frp && ./frpc -c frpc.toml &
本地开发
后端开发
cd server && npm run dev
后端运行在 http://localhost:3333,连接本地 PostgreSQL(localhost:5432,数据库 bill_query)。
前端开发
cd client && npm run dev
访问 http://localhost:5173(Vite proxy 自动转发 /api 到 localhost:3333)。
服务器后端管理
# 查看后端状态
ssh ubuntu@152.136.182.184 'pm2 status sbrain-server'
# 查看后端日志
ssh ubuntu@152.136.182.184 'pm2 logs sbrain-server --lines 50'
# 重启后端
ssh ubuntu@152.136.182.184 'pm2 restart sbrain-server'
# 查看后端 .env
ssh ubuntu@152.136.182.184 'cat /opt/sbrain-server/.env'
注意事项
- 本机 PostgreSQL 端口 5432 被 Homebrew PostgreSQL 占用,数据库
bill_query在本地 - frp 隧道将远程 15432 映射到本地 5432,服务器后端通过 15432 连接本机数据库
- 本机只需运行 frpc(launchd 自启),后端已部署到服务器
- 修改后端代码后执行
bash deploy-server.sh部署到服务器 - 修改前端代码后执行
bash deploy.sh部署到服务器 server/.env(本机开发用)中DB_PORT=5432连接本地数据库,不要改为 5433- 服务器
/opt/sbrain-server/.env中DB_PORT=15432连接 frp 隧道端口 - frpc 断开后线上前端 API 会失效,需重新启动 frpc
- launchd 服务开机自启,关闭 IDE/终端不影响;仅注销/关机时停止,下次登录/开机自动恢复