#!/bin/bash # ============================================ # Forge Admin 一键部署脚本(空服务器专用) # 适用系统: CentOS 7/8 / Anolis OS / RHEL # 使用方法: 复制全部内容粘贴到服务器终端执行 # ============================================ set -e echo "==========================================" echo " Forge Admin 一键部署 - 开始" echo "==========================================" # ======================== # 1. 创建 2G Swap 防 OOM # ======================== echo "[1/6] 创建 Swap 分区..." if [ ! -f /swapfile ]; then sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab echo " ✓ Swap 创建成功" else echo " ✓ Swap 已存在,跳过" fi free -h | grep Swap # ======================== # 2. 安装 Docker # ======================== echo "[2/6] 安装 Docker..." if command -v docker &> /dev/null; then echo " ✓ Docker 已安装: $(docker --version)" else sudo yum install -y yum-utils sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin sudo systemctl start docker sudo systemctl enable docker echo " ✓ Docker 安装完成: $(docker --version)" fi # ======================== # 3. 安装 Git # ======================== echo "[3/6] 安装 Git..." if command -v git &> /dev/null; then echo " ✓ Git 已安装: $(git --version)" else sudo yum install -y git echo " ✓ Git 安装完成" fi # ======================== # 4. 克隆代码到 /mnt/project # ======================== echo "[4/6] 克隆项目代码到 /mnt/project..." sudo mkdir -p /mnt/project cd /mnt/project if [ -d "forge_admin" ]; then echo " ✓ 项目目录已存在,检查是否为 git 仓库..." cd forge_admin if [ -d ".git" ]; then echo " ✓ 是 git 仓库,执行 git pull 更新..." git pull else echo " ✗ 不是 git 仓库,删除后重新克隆..." cd /mnt/project rm -rf forge_admin git clone http://3081089em4.wicp.vip/user5/forge_admin.git cd forge_admin echo " ✓ 代码克隆完成" fi else git clone http://3081089em4.wicp.vip/user5/forge_admin.git cd forge_admin echo " ✓ 代码克隆完成" fi # ======================== # 5. 配置环境变量 # ======================== echo "[5/6] 配置环境变量..." cd /mnt/project/forge_admin/docker if [ ! -f .env ]; then cp .env.example .env echo " ✓ .env 已创建(使用默认配置)" else echo " ✓ .env 已存在,跳过" fi # ======================== # 6. 构建并启动 # ======================== echo "[6/6] 构建并启动服务(首次构建约 15-20 分钟,请耐心等待)..." docker compose up -d --build echo "" echo "==========================================" echo " 部署完成!" echo "==========================================" echo "" echo "查看服务状态: docker compose ps" echo "查看启动日志: docker compose logs -f" echo "" echo "访问地址: http://$(curl -s ifconfig.me)/forge" echo "账号: admin" echo "密码: 123456" echo "" echo "⚠️ 确保阿里云安全组已放行 80 端口" echo "=========================================="