129 lines
3.0 KiB
Bash
129 lines
3.0 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
|
||
|
|
# 图片资源展示网站 - 部署脚本
|
||
|
|
# 使用方法: chmod +x deploy.sh && ./deploy.sh
|
||
|
|
|
||
|
|
set -e
|
||
|
|
|
||
|
|
echo "========================================="
|
||
|
|
echo " 图片资源展示网站 - 部署脚本"
|
||
|
|
echo "========================================="
|
||
|
|
|
||
|
|
# 检测操作系统
|
||
|
|
detect_os() {
|
||
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||
|
|
echo "macos"
|
||
|
|
elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
||
|
|
if [ -f /etc/debian_version ]; then
|
||
|
|
echo "debian"
|
||
|
|
elif [ -f /etc/redhat-release ]; then
|
||
|
|
echo "redhat"
|
||
|
|
else
|
||
|
|
echo "linux"
|
||
|
|
fi
|
||
|
|
else
|
||
|
|
echo "unknown"
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
OS=$(detect_os)
|
||
|
|
echo "检测到操作系统: $OS"
|
||
|
|
|
||
|
|
# 检查并安装 Node.js
|
||
|
|
install_node() {
|
||
|
|
if command -v node &> /dev/null; then
|
||
|
|
NODE_VERSION=$(node -v)
|
||
|
|
echo "Node.js 已安装: $NODE_VERSION"
|
||
|
|
|
||
|
|
# 检查版本是否 >= 14
|
||
|
|
NODE_MAJOR=$(echo $NODE_VERSION | cut -d'v'2 | cut -d'.' -f1)
|
||
|
|
if [ "$NODE_MAJOR" -ge 14 ]; then
|
||
|
|
echo "Node.js 版本满足要求"
|
||
|
|
return 0
|
||
|
|
else
|
||
|
|
echo "Node.js 版本过低,需要重新安装"
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo "正在安装 Node.js..."
|
||
|
|
|
||
|
|
case $OS in
|
||
|
|
macos)
|
||
|
|
if command -v brew &> /dev/null; then
|
||
|
|
brew install node
|
||
|
|
else
|
||
|
|
echo "请先安装 Homebrew: /bin/bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\""
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
;;
|
||
|
|
debian)
|
||
|
|
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
|
||
|
|
sudo apt-get install -y nodejs
|
||
|
|
;;
|
||
|
|
redhat)
|
||
|
|
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -
|
||
|
|
sudo yum install -y nodejs
|
||
|
|
;;
|
||
|
|
*)
|
||
|
|
echo "请手动安装 Node.js: https://nodejs.org/"
|
||
|
|
exit 1
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
|
||
|
|
echo "Node.js 安装完成: $(node -v)"
|
||
|
|
}
|
||
|
|
|
||
|
|
# 检查并安装 npm 依赖
|
||
|
|
install_deps() {
|
||
|
|
echo ""
|
||
|
|
echo "正在安装项目依赖..."
|
||
|
|
|
||
|
|
if [ ! -f package.json ]; then
|
||
|
|
echo "错误: 找不到 package.json 文件"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
npm install
|
||
|
|
|
||
|
|
echo "依赖安装完成"
|
||
|
|
}
|
||
|
|
|
||
|
|
# 初始化数据库
|
||
|
|
init_db() {
|
||
|
|
echo ""
|
||
|
|
echo "正在初始化数据库..."
|
||
|
|
|
||
|
|
mkdir -p data
|
||
|
|
mkdir -p uploads
|
||
|
|
|
||
|
|
echo "数据库初始化完成"
|
||
|
|
}
|
||
|
|
|
||
|
|
# 启动服务
|
||
|
|
start_server() {
|
||
|
|
echo ""
|
||
|
|
echo "========================================="
|
||
|
|
echo " 启动服务器"
|
||
|
|
echo "========================================="
|
||
|
|
echo ""
|
||
|
|
echo "访问地址:"
|
||
|
|
echo " 首页: http://localhost:3000"
|
||
|
|
echo " 登录: http://localhost:3000/login"
|
||
|
|
echo " 后台: http://localhost:3000/admin"
|
||
|
|
echo ""
|
||
|
|
echo "默认账号: admin / admin123"
|
||
|
|
echo ""
|
||
|
|
echo "按 Ctrl+C 停止服务器"
|
||
|
|
echo "========================================="
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
node server.js
|
||
|
|
}
|
||
|
|
|
||
|
|
# 主流程
|
||
|
|
echo ""
|
||
|
|
install_node
|
||
|
|
install_deps
|
||
|
|
init_db
|
||
|
|
start_server
|