102 lines
2.9 KiB
Bash
102 lines
2.9 KiB
Bash
#!/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"
|