89 lines
1.9 KiB
Bash
89 lines
1.9 KiB
Bash
#!/bin/bash
|
|
# Write Server 启动脚本
|
|
# 使用 PM2 管理进程
|
|
|
|
set -e
|
|
|
|
echo "==================================="
|
|
echo " Write Server 启动脚本"
|
|
echo "==================================="
|
|
|
|
# 检查 .env 文件
|
|
if [ ! -f .env ]; then
|
|
echo "错误: 未找到 .env 文件"
|
|
echo "请先复制 .env.example 为 .env 并填写配置"
|
|
exit 1
|
|
fi
|
|
|
|
# 加载环境变量
|
|
source .env
|
|
|
|
# 检查 BLOG_ROOT
|
|
if [ -z "$BLOG_ROOT" ]; then
|
|
echo "错误: BLOG_ROOT 未配置"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -d "$BLOG_ROOT" ]; then
|
|
echo "错误: BLOG_ROOT 目录不存在: $BLOG_ROOT"
|
|
exit 1
|
|
fi
|
|
|
|
# 检查 Node.js
|
|
if ! command -v node &> /dev/null; then
|
|
echo "错误: Node.js 未安装"
|
|
exit 1
|
|
fi
|
|
|
|
# 检查 PM2
|
|
if ! command -v pm2 &> /dev/null; then
|
|
echo "错误: PM2 未安装"
|
|
echo "请运行: sudo npm install -g pm2"
|
|
exit 1
|
|
fi
|
|
|
|
# 检查是否已构建
|
|
if [ ! -d ".next" ]; then
|
|
echo "项目未构建,开始构建..."
|
|
npm run build
|
|
fi
|
|
|
|
# 停止现有进程(如果存在)
|
|
echo "停止现有进程..."
|
|
pm2 delete write-server 2>/dev/null || true
|
|
|
|
# 启动应用
|
|
echo "启动 Write Server..."
|
|
pm2 start npm --name "write-server" -- run start
|
|
|
|
# 等待应用启动
|
|
echo "等待应用启动..."
|
|
sleep 3
|
|
|
|
# 检查应用状态
|
|
if pm2 list | grep -q "write-server.*online"; then
|
|
echo ""
|
|
echo "==================================="
|
|
echo " 启动成功!"
|
|
echo "==================================="
|
|
echo ""
|
|
echo "服务地址: http://localhost:${PORT:-8016}"
|
|
echo ""
|
|
echo "管理命令:"
|
|
echo " 查看状态: pm2 status"
|
|
echo " 查看日志: pm2 logs write-server"
|
|
echo " 重启服务: pm2 restart write-server"
|
|
echo " 停止服务: pm2 stop write-server"
|
|
echo ""
|
|
else
|
|
echo ""
|
|
echo "==================================="
|
|
echo " 启动失败!"
|
|
echo "==================================="
|
|
echo ""
|
|
echo "请查看日志:"
|
|
echo " pm2 logs write-server"
|
|
echo ""
|
|
exit 1
|
|
fi
|