Files
book-mcp/deploy/install-frontend.sh
Quentin 9b0910ccb1 Initial commit: book-mcp 教辅处理 MCP server + Arco Vue 管理端
后端 (book_mcp_server.py, 335 行, 15 个 MCP 工具):
- create_book / add_document / mark_html_ready / mark_json_ready / mark_failed
- update_book_status / soft_delete_book / retry_failed
- get_book / list_books / get_document / list_documents / get_document_url
- upload_to_rustfs / health
- 走 JSON-RPC + stateless_http + json_response(前端可直接调)
- launchd 守护 / 6 秒拉起(macOS)
- systemd 守护脚本(Linux/codelab)

存储:
- MongoDB (mongo:8.0 容器) - book/book_document/document_file 三表
- RustFS 对象存储(fs.code-lab.cn/scan/)- book/<id>/docs/<doc_id>/{docx,html,json}
- 幂等设计: zip_sha256 唯一 + (book_id+original_path) 唯一

前端 (Vue 3 + TS + Arco Design):
- 列表页 /book/list - 搜索 + 状态过滤 + 进度
- 详情页 /book/:id - 文档折叠 + 文件下载
- MCP 客户端 src/api/mcp.ts (JSON-RPC over fetch)

部署:
- deploy/install.sh (codelab 一键装 backend + systemd)
- deploy/install-frontend.sh (vite dev / 生产构建)
- docs/deploy.md (运维手册)

测试:
- tests/test_basic.py (sanity 7 项)
- tests/test_e2e.py (完整 e2e: docx→HTML→入库→上传→校验)
2026-10-11 18:03:57 +08:00

66 lines
2.1 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env bash
# book-mcp 前端部署 — codelab 上跑(独立脚本,从 install.sh 调或手动调)
#
# 两条路径:
# A. dev 模式(端口 5176 + 反代 80)
# B. 生产构建(dist/ + nginx/caddy)
set -euo pipefail
cd "$(dirname "$0")/../frontend"
log() { echo "[$(date +%H:%M:%S)] $*"; }
log "→ 装前端依赖"
[ -d node_modules ] || npm install --no-audit --no-fund
log " ✓ 依赖 OK"
# ============================================================
# A. dev 模式:用 tmux/systemd 起 vite
# ============================================================
if [ "${1:-dev}" = "dev" ]; then
log "→ 起 vite dev(端口 5176)"
cat > /tmp/book-mcp-frontend.service <<EOF
[Unit]
Description=book-mcp frontend dev
After=book-mcp.service
[Service]
Type=simple
WorkingDirectory=$PWD
Environment=NODE_ENV=development
ExecStart=$PWD/node_modules/.bin/vite --config ./config/vite.config.dev.ts
Restart=always
RestartSec=10
User=$USER
StandardOutput=append:/var/log/book-mcp/frontend.log
StandardError=append:/var/log/book-mcp/frontend.error.log
[Install]
WantedBy=multi-user.target
EOF
sudo mv /tmp/book-mcp-frontend.service /etc/systemd/system/book-mcp-frontend.service
sudo systemctl daemon-reload
sudo systemctl enable book-mcp-frontend.service
sudo systemctl restart book-mcp-frontend.service
sleep 5
log " ✓ vite dev 已起(端口 5176)"
# ============================================================
# B. 生产构建
# ============================================================
else
log "→ 生产构建"
npm run build
log " ✓ dist/ 已生成"
log ""
log "前端 dist 在 $PWD/dist/,nginx 配置示例:"
log " server { listen 80; root $PWD/dist; location /mcp { proxy_pass http://127.0.0.1:8100; } }"
fi
log ""
log "============================================================"
log "✅ 前端部署完成"
log " dev URL: http://127.0.0.1:5176"
log " 生产: dist/ 目录"
log " 服务管理: sudo systemctl {start|stop|restart|status} book-mcp-frontend"
log "============================================================"