This commit is contained in:
vet
2026-04-13 01:27:34 +07:00
commit c7c3c02bc3
18 changed files with 2730 additions and 0 deletions

106
01-init-env.sh Executable file
View File

@@ -0,0 +1,106 @@
#!/usr/bin/env bash
# =============================================================================
# 01-init-env.sh — 生成 .env.deploy-test 配置模板(测试服务器环境)
#
# 作用:在项目根目录生成 .env.deploy-test填写各服务的连接信息
# 后续步骤:编辑 .env.deploy-test然后执行 02-patch-config.sh
# =============================================================================
set -euo pipefail
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/common.sh"
init_dirs
init_script_log # ← 脚本执行日志
header "步骤 1 / 5 — 初始化 .env.deploy-test 配置"
if [[ -f "$ENV_FILE" ]]; then
warn ".env.deploy-test 已存在,跳过创建"
echo ""
echo -e "${BOLD}当前配置:${NC}"
grep -v '^\s*#' "$ENV_FILE" | grep -v '^\s*$' | sed 's/^/ /'
echo ""
echo -e "如需重置:${YELLOW}rm $ENV_FILE && $0${NC}"
exit 0
fi
cat > "$ENV_FILE" <<'EOF'
# =============================================================================
# 测试服务器环境配置 — .env.deploy-test
# 部署场景:测试服务器(有公网 IP所有服务本地运行
# 编辑完成后执行:./deploy-test/02-patch-config.sh
# =============================================================================
# ── 测试服务器公网 IP必填─────────────────────────────────────────────────
# 本机(测试服务器)的公网 IPLiveKit WebRTC 媒体流需要通过此 IP 对外暴露
# 本地 Mac 环境deploy-local也会引用此地址连接 LiveKit
DEPLOY_TEST_IP=54.116.29.247
# ── MongoDB远程服务必填─────────────────────────────────────────────────
# open-im-server / chat / build-server 共用同一个连接,只是 DB 名不同
MONGO_HOST=47.237.103.4
MONGO_PORT=27017
MONGO_USERNAME=minio_pC5wMB
MONGO_PASSWORD=rI57PJsJhnz_qlRkfnTa0RPT
MONGO_AUTHSOURCE=openim_v3
MONGO_DATABASE=openim_v3 # open-im-server / chat 使用
BUILD_MONGO_DATABASE=build # build-server 使用
# ── Amazon S3 — open-im-serverIM 聊天文件存储,必填)──────────────────────
# 对应 open-im-server/config/openim-rpc-third.yml → object.aws
OPENIM_AWS_REGION=ap-southeast-1
OPENIM_AWS_BUCKET=im1688
OPENIM_AWS_ACCESS_KEY_ID=AKIA5TMMSZWVFYCLKJ2G
OPENIM_AWS_SECRET_ACCESS_KEY=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
# 自定义 EndpointCloudFlare R2 / 其他 S3 兼容服务),留空则使用 AWS 官方
OPENIM_AWS_ENDPOINT=
OPENIM_AWS_PUBLIC_READ=true
# ── Amazon S3 — build-serverApp APK/IPA 构建产物存储,必填)───────────────
# 对应 build-server/config/config.yaml → aws
BUILD_AWS_REGION=ap-east-1
BUILD_AWS_BUCKET=im-hk-apk
BUILD_AWS_ACCESS_KEY=AKIASJ7PFAWCXUDC7KQV
BUILD_AWS_SECRET_KEY=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
# ── RedisDocker 本地运行)─────────────────────────────────────────────────
REDIS_PORT=6379
REDIS_PASSWORD=openIM123
# ── KafkaDocker 本地运行KRaft 模式)────────────────────────────────────
KAFKA_PORT=9092
# ── EtcdDocker 本地运行,服务发现注册中心)───────────────────────────────
ETCD_PORT=2379
# ── LiveKit ServerDocker 本地运行,使用本机公网 IP──────────────────────
# LiveKit 通过 Docker 启动(容器名: dev-livekit复用 dev-redis。
# WebRTC 媒体流需要公网 IP使用上方 DEPLOY_TEST_IP。
#
# LIVEKIT_NODE_IP: = DEPLOY_TEST_IPWebRTC 客户端通过此 IP 直连媒体流
# LIVEKIT_URL: 后端服务连接 LiveKit 的地址(服务器内部用回环即可)
# LIVEKIT_API_KEY / LIVEKIT_API_SECRET: 来自 livekit/livekit.yaml → keys 段
LIVEKIT_NODE_IP=54.116.29.247 # 与 DEPLOY_TEST_IP 保持一致
LIVEKIT_URL=ws://127.0.0.1:7880
LIVEKIT_API_KEY=API8462dba2
LIVEKIT_API_SECRET=U0l7/3IQjWzusK2eOrWlGmLD5jSzALvV2G5tIxGQaQc=
# ── Cloudflare Streamlivestream 服务使用)──────────────────────────────────
# 来源: livestream/config.yaml → cloudflare 段(若已有值请从该文件复制)
CF_ACCOUNT_ID=
CF_API_TOKEN=
CF_EMAIL=
CF_API_KEY=
CF_CUSTOMER_CODE=
# ── 腾讯云 RTClivecloud 服务使用)─────────────────────────────────────────
# 来源: livecloud/config/config.yml → cloud.tencent 段
TENCENT_SDK_APP_ID=20033091
TENCENT_SDK_SECRET_KEY=cceba44084aaa04f8c48a1858ffd5385875c3a5ec006d34278d9d3714b40e3b0
EOF
success ".env.deploy-test 已创建: $ENV_FILE"
echo ""
echo -e "${BOLD}下一步:${NC}"
echo -e " 1. 确认 DEPLOY_TEST_IP 等关键配置正确:"
echo -e " ${CYAN}vim $ENV_FILE${NC}"
echo -e " 2. 将配置写入各服务 YAML"
echo -e " ${CYAN}./deploy-test/02-patch-config.sh${NC}"