修复 deploy.sh Windows 换行导致 Linux 无法执行

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
dekun
2026-06-15 11:20:35 +08:00
parent 7561bf88c5
commit 49b11eeb00
2 changed files with 87 additions and 84 deletions
+3
View File
@@ -0,0 +1,3 @@
# Shell 脚本在 Linux 上必须使用 LF 换行
*.sh text eol=lf
deploy.sh text eol=lf
+84 -84
View File
@@ -1,84 +1,84 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# 国内期货监控系统 - Ubuntu 一键部署 # 国内期货监控系统 - Ubuntu 一键部署
# root 用户 | 目录 /opt/qihuo | 端口 6600 | PM2 # root 用户 | 目录 /opt/qihuo | 端口 6600 | PM2
set -euo pipefail set -euo pipefail
APP_DIR="/opt/qihuo" APP_DIR="/opt/qihuo"
REPO_URL="https://git.bz121.com/dekun/qihuo.git" REPO_URL="https://git.bz121.com/dekun/qihuo.git"
SERVICE_NAME="qihuo" SERVICE_NAME="qihuo"
if [ "$(id -u)" -ne 0 ]; then if [ "$(id -u)" -ne 0 ]; then
echo "请使用 root 用户运行: sudo bash deploy.sh" echo "请使用 root 用户运行: sudo bash deploy.sh"
exit 1 exit 1
fi fi
echo "==> 检查系统依赖..." echo "==> 检查系统依赖..."
apt-get update -qq apt-get update -qq
need_install() { need_install() {
if ! command -v "$1" &>/dev/null; then if ! command -v "$1" &>/dev/null; then
apt-get install -y "$2" apt-get install -y "$2"
fi fi
} }
need_install python3 python3 need_install python3 python3
need_install python3-venv python3-venv need_install python3-venv python3-venv
need_install git git need_install git git
if ! command -v pm2 &>/dev/null; then if ! command -v pm2 &>/dev/null; then
echo "==> 安装 PM2..." echo "==> 安装 PM2..."
if ! command -v npm &>/dev/null; then if ! command -v npm &>/dev/null; then
need_install nodejs nodejs need_install nodejs nodejs
need_install npm npm need_install npm npm
fi fi
npm install -g pm2 npm install -g pm2
fi fi
echo "==> 准备应用目录 ${APP_DIR}..." echo "==> 准备应用目录 ${APP_DIR}..."
mkdir -p "$(dirname "$APP_DIR")" mkdir -p "$(dirname "$APP_DIR")"
if [ -d "$APP_DIR/.git" ]; then if [ -d "$APP_DIR/.git" ]; then
echo "==> 更新已有仓库..." echo "==> 更新已有仓库..."
cd "$APP_DIR" cd "$APP_DIR"
git pull origin main || git pull origin master || true git pull origin main || git pull origin master || true
else else
if [ -d "$APP_DIR" ] && [ "$(ls -A "$APP_DIR" 2>/dev/null)" ]; then if [ -d "$APP_DIR" ] && [ "$(ls -A "$APP_DIR" 2>/dev/null)" ]; then
echo "目录 ${APP_DIR} 已存在且非 git 仓库,请手动处理后重试" echo "目录 ${APP_DIR} 已存在且非 git 仓库,请手动处理后重试"
exit 1 exit 1
fi fi
git clone "$REPO_URL" "$APP_DIR" git clone "$REPO_URL" "$APP_DIR"
cd "$APP_DIR" cd "$APP_DIR"
fi fi
echo "==> 创建 Python 虚拟环境..." echo "==> 创建 Python 虚拟环境..."
python3 -m venv "$APP_DIR/venv" python3 -m venv "$APP_DIR/venv"
source "$APP_DIR/venv/bin/activate" source "$APP_DIR/venv/bin/activate"
pip install --upgrade pip -q pip install --upgrade pip -q
pip install -r "$APP_DIR/requirements.txt" -q pip install -r "$APP_DIR/requirements.txt" -q
if [ ! -f "$APP_DIR/.env" ]; then if [ ! -f "$APP_DIR/.env" ]; then
echo "==> 生成 .env(请编辑 ADMIN_PASSWORD、THS_REFRESH_TOKEN..." echo "==> 生成 .env(请编辑 ADMIN_PASSWORD 后重启..."
cp "$APP_DIR/.env.example" "$APP_DIR/.env" cp "$APP_DIR/.env.example" "$APP_DIR/.env"
RAND_KEY=$(python3 -c "import secrets; print(secrets.token_hex(32))") RAND_KEY=$(python3 -c "import secrets; print(secrets.token_hex(32))")
sed -i "s/change-this-to-a-random-secret-key/${RAND_KEY}/" "$APP_DIR/.env" sed -i "s/change-this-to-a-random-secret-key/${RAND_KEY}/" "$APP_DIR/.env"
fi fi
mkdir -p "$APP_DIR/logs" mkdir -p "$APP_DIR/logs"
echo "==> PM2 启动/重启服务..." echo "==> PM2 启动/重启服务..."
cd "$APP_DIR" cd "$APP_DIR"
pm2 delete "$SERVICE_NAME" 2>/dev/null || true pm2 delete "$SERVICE_NAME" 2>/dev/null || true
pm2 start ecosystem.config.cjs pm2 start ecosystem.config.cjs
pm2 save pm2 save
echo "" echo ""
echo "==========================================" echo "=========================================="
echo " 部署完成" echo " 部署完成"
echo " 目录: ${APP_DIR}" echo " 目录: ${APP_DIR}"
echo " 用户: root" echo " 用户: root"
echo " 端口: 6600" echo " 端口: 6600"
echo " 访问: http://<服务器IP>:6600" echo " 访问: http://<服务器IP>:6600"
echo " 日志: pm2 logs ${SERVICE_NAME}" echo " 日志: pm2 logs ${SERVICE_NAME}"
echo " 开机自启: pm2 startup && pm2 save" echo " 开机自启: pm2 startup && pm2 save"
echo "==========================================" echo "=========================================="