#!/bin/bash # GoWVP + ZLMediaKit 一键部署脚本 # 适用于统信UOS20 ARM64 离线环境 set -e RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' INSTALL_DIR="/opt/owl-zlmediakit" DATA_DIR="${INSTALL_DIR}/data" echo -e "${GREEN}========================================${NC}" echo -e "${GREEN} GoWVP + ZLMediaKit 部署脚本 ${NC}" echo -e "${GREEN}========================================${NC}" # 检查root权限 if [ "$EUID" -ne 0 ]; then echo -e "${RED}错误: 请使用 root 用户运行${NC}" exit 1 fi # 检查架构 ARCH=$(uname -m) if [ "$ARCH" != "aarch64" ]; then echo -e "${RED}错误: 当前架构为 $ARCH,本脚本仅支持 aarch64${NC}" exit 1 fi # 创建目录 echo -e "${YELLOW}[1/6] 创建数据目录...${NC}" mkdir -p "${DATA_DIR}"/record mkdir -p "${DATA_DIR}"/log mkdir -p "${DATA_DIR}"/gowvp-configs mkdir -p "${DATA_DIR}"/snap # 复制配置文件 echo -e "${YELLOW}[2/6] 复制配置文件...${NC}" cp configs/zlm-config.ini "${DATA_DIR}/" cp configs/docker-compose.yml "${INSTALL_DIR}/" # 加载Docker镜像 echo -e "${YELLOW}[3/6] 加载 Docker 镜像...${NC}" if [ -f "docker-images/zlmediakit-master-arm64.tar" ]; then docker load -i docker-images/zlmediakit-master-arm64.tar echo -e "${GREEN} ✓ ZLMediaKit 镜像已加载${NC}" else echo -e "${RED} ✗ 未找到 ZLMediaKit 镜像文件${NC}" exit 1 fi if [ -f "docker-images/gowvp-latest-arm64.tar" ]; then docker load -i docker-images/gowvp-latest-arm64.tar echo -e "${GREEN} ✓ GoWVP 镜像已加载${NC}" else echo -e "${RED} ✗ 未找到 GoWVP 镜像文件${NC}" exit 1 fi # 启动服务 echo -e "${YELLOW}[4/6] 启动服务...${NC}" cd "${INSTALL_DIR}" docker-compose up -d # 等待服务启动 echo -e "${YELLOW}[5/6] 等待服务启动 (约30秒)...${NC}" sleep 10 echo -e "${YELLOW} 继续等待...${NC}" sleep 10 echo -e "${YELLOW} 即将完成...${NC}" sleep 10 # 验证服务 echo -e "${YELLOW}[6/6] 验证服务状态...${NC}" if docker ps | grep -q zlmediakit; then echo -e "${GREEN} ✓ ZLMediaKit 容器正在运行${NC}" else echo -e "${RED} ✗ ZLMediaKit 容器未运行${NC}" fi if docker ps | grep -q gowvp; then echo -e "${GREEN} ✓ GoWVP 容器正在运行${NC}" else echo -e "${RED} ✗ GoWVP 容器未运行${NC}" fi echo -e "${GREEN}========================================${NC}" echo -e "${GREEN} 部署完成! ${NC}" echo -e "${GREEN}========================================${NC}" echo "" echo -e "${YELLOW}访问地址:${NC}" echo -e " ZLMediaKit: http://<服务器IP>" echo -e " GoWVP管理界面: http://<服务器IP>:15123" echo "" echo -e "${YELLOW}常用命令:${NC}" echo -e " 查看日志: docker logs -f zlmediakit" echo -e " 查看日志: docker logs -f gowvp" echo -e " 停止服务: docker-compose down" echo -e " 重启服务: docker-compose restart"