| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- #!/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 "=========================================="
|