2.9 KiB
2.9 KiB
当前数据库是本机Homebrew PostgreSQL 15,数据库名为 bill_query,端口5432,仅监听 localhost;当前用户 freedak 是超级用户,本机认证方式为 trust。这适合本机开发,但不适合直接照搬到服务器生产环境。前端浏览器也不应直接连接PostgreSQL,必须通过后端API访问。
登录账号
| 用户名 | 密码 | 角色 |
|---|---|---|
| 总部管理员 | 123 | hq |
| 区域经理 | 123 | regional |
| 潘家园店长 | 123 | store |
| 商品部 | 123 | dept |
本地开发启动
后端服务和 frp 隧道已配置为 macOS launchd 系统级服务,开机自动启动,崩溃自动重启,与 IDE 无关。
系统级服务(launchd)
已创建两个 LaunchAgent:
| 服务 | plist | 日志 |
|---|---|---|
| 后端 (localhost:3333) | ~/Library/LaunchAgents/com.sbrain.backend.plist |
~/Library/Logs/sbrain-backend.log |
| frp 隧道 (13333→3333) | ~/Library/LaunchAgents/com.frp.client.plist |
~/Library/Logs/frpc.log |
两个服务均配置了 KeepAlive: true,崩溃后自动重启。开机/登录后自动启动,关闭 IDE 和终端不影响运行。
管理命令
# 停止服务
launchctl unload ~/Library/LaunchAgents/com.sbrain.backend.plist
launchctl unload ~/Library/LaunchAgents/com.frp.client.plist
# 启动服务
launchctl load ~/Library/LaunchAgents/com.sbrain.backend.plist
launchctl load ~/Library/LaunchAgents/com.frp.client.plist
# 查看日志
tail -f ~/Library/Logs/sbrain-backend.log
tail -f ~/Library/Logs/frpc.log
# 检查状态
curl -s http://localhost:3333/api/health
pgrep -l frpc
手动启动(备用,launchd 未运行时)
1. 启动后端服务
cd server && npm run dev
后端运行在 http://localhost:3333,连接本地 PostgreSQL(localhost:5432,数据库 bill_query)。
2. 启动 frp 隧道
线上 Nginx 将 /api/ 代理到远程 127.0.0.1:13333,通过 frp tcp 代理转发到本地后端 3333 端口:
frpc 配置(/Users/freedak/frp/frpc.toml)中已包含 dm-api 代理:
[[proxies]]
name = "dm-api"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3333
remotePort = 13333
重启 frpc:
kill -9 $(pgrep frpc); cd /Users/freedak/frp && ./frpc -c frpc.toml &
访问
- 线上前端:
https://dm.all8ai.top(API请求通过 frp 隧道转发到本地后端) - 本地前端开发:
cd client && npm run dev,访问http://localhost:5173(Vite proxy 自动转发/api到localhost:3333)
注意事项
- 本地 PostgreSQL 端口 5432 被 Homebrew PostgreSQL 占用,数据库
bill_query在本地 - frp 隧道将远程 13333 映射到本地 3333,服务器 Nginx 配置
/api/→127.0.0.1:13333 - launchd 服务开机自启,关闭 IDE/终端不影响;仅注销/关机时停止,下次登录/开机自动恢复
server/.env中DB_PORT=5432连接本地数据库,不要改为 5433