OpenIM + LiveKit 内网测试环境一键部署包
- docker-compose: openim-server v3.8.3-patch.12 + mongo/redis/etcd/kafka/minio + livekit v1.13.5 - 按约束移除 openim-chat(GPLv3) 及依赖它的 web/admin 前端; 监控组件收进 profile m - scripts/deploy.sh 一键部署, scripts/selftest.sh 自测(注册/登录/文字/语音/文件/一对一通话), scripts/restart.sh 重启 - README: 部署记录(服务器要求/端口表/运维/接入参数)
This commit is contained in:
Executable
+52
@@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env bash
|
||||
# OpenIM + LiveKit 内网测试环境一键部署
|
||||
# 用法: ./scripts/deploy.sh [服务器内网IP] (不传则自动探测)
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")/.."
|
||||
|
||||
# 1. 首次运行从模板生成 .env
|
||||
if [ ! -f .env ]; then
|
||||
cp .env.example .env
|
||||
echo "已从 .env.example 生成 .env"
|
||||
fi
|
||||
|
||||
# 2. 确定服务器内网 IP
|
||||
IP="${1:-}"
|
||||
if [ -z "$IP" ]; then
|
||||
IP=$(hostname -I 2>/dev/null | awk '{print $1}')
|
||||
fi
|
||||
if [ -z "$IP" ]; then
|
||||
echo "无法自动获取内网 IP,请手动传入: ./scripts/deploy.sh <服务器IP>"
|
||||
exit 1
|
||||
fi
|
||||
echo "使用服务器 IP: $IP"
|
||||
|
||||
# 3. 把 IP 写进 .env(MinIO 外链地址必须是客户端能访问的地址)
|
||||
sed -i "s|^SERVER_IP=.*|SERVER_IP=${IP}|" .env
|
||||
sed -i "s|^MINIO_EXTERNAL_ADDRESS=.*|MINIO_EXTERNAL_ADDRESS=\"http://${IP}:10005\"|" .env
|
||||
sed -i "s|^GRAFANA_URL=.*|GRAFANA_URL=\"http://${IP}:13000/\"|" .env
|
||||
|
||||
# 4. 预创建挂载目录(避免 docker 把文件路径自动建成目录)
|
||||
mkdir -p components/redis/config components/mnt/data components/mongodb components/etcd components/kafka
|
||||
touch components/redis/config/redis.conf
|
||||
|
||||
# 5. 拉镜像并启动
|
||||
docker compose pull
|
||||
docker compose up -d
|
||||
|
||||
# 6. 等待 openim-server 健康(首次启动约 30-60 秒)
|
||||
echo "等待 openim-server 就绪(最长约 2 分钟)..."
|
||||
status="unknown"
|
||||
for _ in $(seq 1 24); do
|
||||
status=$(docker inspect -f '{{.State.Health.Status}}' openim-server 2>/dev/null || echo "unknown")
|
||||
[ "$status" = "healthy" ] && break
|
||||
sleep 5
|
||||
done
|
||||
|
||||
docker compose ps
|
||||
echo
|
||||
if [ "$status" = "healthy" ]; then
|
||||
echo "部署完成。下一步运行自测: ./scripts/selftest.sh ${IP}"
|
||||
else
|
||||
echo "openim-server 尚未 healthy(当前: ${status})。可执行 docker compose logs -f openim-server 查看日志。"
|
||||
fi
|
||||
Reference in New Issue
Block a user