Files
deploy-test/01-init-env.sh
2026-04-13 01:27:34 +07:00

107 lines
5.2 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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}"