#!/bin/bash
set -euo pipefail
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
# 日志函数
info() { echo -e "${GREEN}[INFO] $1${NC}"; }
warn() { echo -e "${YELLOW}[WARN] $1${NC}"; }
error() { echo -e "${RED}[ERROR] $1${NC}"; exit 1; }
# 检查root权限
check_root() {
info "校验执行权限..."
if [ "$(id -u)" -ne 0 ]; then
error "请使用 root 权限执行脚本!"
fi
}
# 安装Docker
install_docker() {
info "安装 yum 工具..."
sudo yum install -y yum-utils
info "添加阿里云 Docker 源..."
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
info "安装 Docker 及组件..."
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
info "启动并设置开机自启..."
sudo systemctl start docker
sudo systemctl enable docker
}
# 部署Coze
deploy_coze() {
info "克隆 Coze 代码..."
cd /root
if [ ! -d "coze-studio" ]; then
git clone https://github.com/coze-dev/coze-studio.git
fi
info "进入目录并构建 web..."
cd coze-studio/
make web
info "修改监听为 0.0.0.0 开放外网访问..."
cd docker
sed -i "s|127.0.0.1:8888|0.0.0.0:8888|g" .env
grep 8888 .env
info "重启容器生效..."
docker compose down
docker compose up -d
info "等待服务启动..."
sleep 5
info "========== 服务运行状态 =========="
docker compose ps
info "=================================="
}
# 主流程
main() {
check_root
install_docker
deploy_coze
info "✅ Coze 部署完成!已开启外网访问"
info "🌐 访问地址:http://服务器IP:8888"
}
main