From 2d3c528c1cb5537c096c4a75e4640eacbdd5acbf Mon Sep 17 00:00:00 2001 From: Chen Xiao Date: Tue, 12 May 2026 10:06:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0Linux=E4=B8=8B=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E7=8E=AF=E5=A2=83=E5=92=8C=E8=BF=90=E8=A1=8C=E7=9A=84?= =?UTF-8?q?=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Chen Xiao --- run_dev.sh | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++ setup_env.sh | 46 ++++++++++++++++++++++++++++++ 2 files changed, 125 insertions(+) create mode 100644 run_dev.sh create mode 100644 setup_env.sh diff --git a/run_dev.sh b/run_dev.sh new file mode 100644 index 0000000..66d344f --- /dev/null +++ b/run_dev.sh @@ -0,0 +1,79 @@ +#!/bin/bash + +# ========================================== +# To_Docx Debian 启动脚本 (run_dev.sh) +# 用于在 Debian 13 环境下一键启动前后端 +# ========================================== + +# 获取脚本所在的绝对路径 +ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +CONDA_ENV="to_docx" + +echo "------------------------------------------" +echo "🚀 正在启动 To_Docx 开发环境..." +echo "项目根目录: $ROOT_DIR" +echo "------------------------------------------" + +# 1. 基础环境检查 +if ! command -v conda &> /dev/null; then + echo "❌ 错误: 未检测到 conda 命令,请先安装 Miniconda 或 Anaconda。" + exit 1 +fi + +if ! command -v node &> /dev/null; then + echo "❌ 错误: 未检测到 node 命令,请先安装 Node.js。" + exit 1 +fi + +# 2. 检查并提示 Conda 环境 +if ! conda info --envs | grep -q "$CONDA_ENV"; then + echo "⚠️ 警告: 未找到 Conda 环境 '$CONDA_ENV'。" + echo "提示: 请按照以下步骤搭建环境:" + echo " 1. conda create -n $CONDA_ENV python=3.10 -y" + echo " 2. conda activate $CONDA_ENV" + echo " 3. pip install fastapi uvicorn pypandoc python-docx pydantic \"python-jose[cryptography]\" \"passlib[bcrypt]\" bcrypt" + exit 1 +fi + +# 3. 定义清理函数 (处理 Ctrl+C) +cleanup() { + echo "" + echo "🛑 正在停止所有服务..." + [ -n "$BACKEND_PID" ] && kill $BACKEND_PID 2>/dev/null + [ -n "$FRONTEND_PID" ] && kill $FRONTEND_PID 2>/dev/null + echo "✅ 服务已关闭。" + exit 0 +} + +# 捕获中断信号 +trap cleanup SIGINT + +# 4. 启动后端 (FastAPI) +echo "[1/2] 正在启动后端服务器 (端口: 3001)..." +# 使用 conda run 确保在正确的环境下执行,无需手动 activate +conda run --no-capture-output -n $CONDA_ENV python "$ROOT_DIR/server/main.py" & +BACKEND_PID=$! + +# 5. 启动前端 (Vite) +echo "[2/2] 正在启动前端开发服务器 (端口: 5173)..." +cd "$ROOT_DIR/client" + +# 自动修复 Vite 的执行权限问题 (针对 Permission denied 报错) +if [ -f "node_modules/.bin/vite" ]; then + chmod +x node_modules/.bin/vite +fi + +# 使用 --host 允许外部通过服务器 IP 访问 +npm run dev -- --host & +FRONTEND_PID=$! + +echo "------------------------------------------" +echo "✅ 所有服务已尝试启动!" +echo "后端 PID: $BACKEND_PID" +echo "前端 PID: $FRONTEND_PID" +echo "👉 访问地址: http://服务器IP:5173" +echo "💡 提示: 按下 [Ctrl+C] 停止所有服务。" +echo "------------------------------------------" + +# 阻塞主进程以保持后台进程运行并输出日志 +wait diff --git a/setup_env.sh b/setup_env.sh new file mode 100644 index 0000000..c18930d --- /dev/null +++ b/setup_env.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +# ========================================== +# To_Docx 环境安装脚本 (setup_env.sh) +# 用于自动化创建 Conda 环境并安装依赖 +# ========================================== + +CONDA_ENV="to_docx" +ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +echo "------------------------------------------" +echo "🛠️ 开始配置 To_Docx 运行环境..." +echo "------------------------------------------" + +# 1. 检查 Conda 是否安装 +if ! command -v conda &> /dev/null; then + echo "❌ 错误: 未检测到 conda,请先安装 Miniconda 或 Anaconda。" + exit 1 +fi + +# 2. 创建 Conda 环境 (如果不存在) +if conda info --envs | grep -q "$CONDA_ENV"; then + echo "ℹ️ 环境 '$CONDA_ENV' 已存在,跳过创建步骤。" +else + echo "📦 正在创建 Conda 环境: $CONDA_ENV (Python 3.10)..." + conda create -n $CONDA_ENV python=3.10 -y +fi + +# 3. 安装后端 Python 依赖 +echo "🐍 正在安装后端依赖..." +if [ -f "$ROOT_DIR/server/requirements.txt" ]; then + conda run -n $CONDA_ENV pip install -r "$ROOT_DIR/server/requirements.txt" +else + # 回退方案:手动安装 + conda run -n $CONDA_ENV pip install fastapi uvicorn pypandoc python-docx pydantic "python-jose[cryptography]" "passlib[bcrypt]" bcrypt +fi + +# 4. 检查系统依赖提示 +echo "------------------------------------------" +echo "✅ Python 环境配置完成!" +echo "" +echo "💡 额外提醒:" +echo "1. 请确保系统已安装 Pandoc (Debian: sudo apt install pandoc)" +echo "2. 如果需要运行前端,请确保已安装 Node.js 并在 client 目录执行 npm install" +echo "3. 现在您可以运行 ./run_dev.sh 启动项目了。" +echo "------------------------------------------"