#!/bin/bash # ============================================ # 服务器初始化脚本 # 在全新的阿里云服务器上运行此脚本 # ============================================ set -e echo "==========================================" echo " 阿里云服务器初始化" echo "==========================================" echo "" # 更新系统 if command -v apt-get &> /dev/null; then echo "检测到 Debian/Ubuntu 系统" apt-get update apt-get upgrade -y apt-get install -y curl wget git vim unzip ufw elif command -v yum &> /dev/null; then echo "检测到 CentOS/RHEL 系统" yum update -y yum install -y curl wget git vim unzip firewalld fi # 安装 Docker echo "" echo "正在安装 Docker..." if ! command -v docker &> /dev/null; then curl -fsSL https://get.docker.com | sh systemctl start docker systemctl enable docker echo "Docker 安装完成" else echo "Docker 已安装,跳过" fi # 安装 Docker Compose echo "" echo "正在安装 Docker Compose..." if ! command -v docker-compose &> /dev/null; then DOCKER_COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -oP '"tag_name": "\K(.*)(?=")') curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose ln -sf /usr/local/bin/docker-compose /usr/bin/docker-compose echo "Docker Compose 安装完成" else echo "Docker Compose 已安装,跳过" fi # 配置防火墙 echo "" echo "正在配置防火墙..." if command -v ufw &> /dev/null; then ufw default deny incoming ufw default allow outgoing ufw allow 22/tcp ufw allow 80/tcp ufw allow 443/tcp ufw --force enable echo "UFW 防火墙配置完成" elif command -v firewall-cmd &> /dev/null; then systemctl start firewalld systemctl enable firewalld firewall-cmd --permanent --add-service=ssh firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload echo "Firewalld 防火墙配置完成" fi # 配置时区 echo "" echo "设置时区为 Asia/Shanghai..." timedatectl set-timezone Asia/Shanghai || true # Docker 镜像加速(阿里云) echo "" echo "配置 Docker 镜像加速..." mkdir -p /etc/docker cat > /etc/docker/daemon.json << 'EOF' { "registry-mirrors": [ "https://mirror.ccs.tencentyun.com", "https://hub-mirror.c.163.com" ], "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "3" } } EOF systemctl restart docker echo "" echo "==========================================" echo " 服务器初始化完成" echo "==========================================" echo "" echo "Docker 版本:" docker --version echo "Docker Compose 版本:" docker-compose --version echo "" echo "下一步:上传项目文件并运行 ./deploy.sh" echo ""