89 lines
2.1 KiB
Bash
89 lines
2.1 KiB
Bash
#!/bin/bash
|
||
# 云端最小回调壳部署脚本
|
||
# 用途:在备案域名服务器上部署最小可用回调壳
|
||
|
||
set -e
|
||
|
||
echo "=== 企业微信 AI 助手 - 最小回调壳部署 ==="
|
||
echo ""
|
||
|
||
# 检查环境变量
|
||
if [ -z "$DOMAIN" ]; then
|
||
echo "错误: 未设置 DOMAIN 环境变量"
|
||
echo "请设置: export DOMAIN=your-domain.com"
|
||
exit 1
|
||
fi
|
||
|
||
if [ ! -f ".env" ]; then
|
||
echo "错误: 未找到 .env 文件"
|
||
echo "请复制 .env.example 并填写必需变量"
|
||
exit 1
|
||
fi
|
||
|
||
# 检查必需的环境变量
|
||
source .env
|
||
required_vars=("WECOM_TOKEN" "WECOM_ENCODING_AES_KEY" "WECOM_CORP_ID" "WECOM_AGENT_ID")
|
||
for var in "${required_vars[@]}"; do
|
||
if [ -z "${!var}" ]; then
|
||
echo "错误: 未设置 $var 环境变量"
|
||
exit 1
|
||
fi
|
||
done
|
||
|
||
echo "[1/5] 检查 Docker 环境..."
|
||
if ! command -v docker &> /dev/null; then
|
||
echo "错误: Docker 未安装"
|
||
exit 1
|
||
fi
|
||
|
||
if ! command -v docker-compose &> /dev/null; then
|
||
echo "错误: docker-compose 未安装"
|
||
exit 1
|
||
fi
|
||
|
||
echo "✓ Docker 环境正常"
|
||
echo ""
|
||
|
||
echo "[2/5] 构建后端镜像..."
|
||
docker-compose build backend
|
||
echo "✓ 构建完成"
|
||
echo ""
|
||
|
||
echo "[3/5] 启动服务(最小回调壳:backend + nginx)..."
|
||
docker-compose up -d backend nginx
|
||
echo "✓ 服务已启动"
|
||
echo ""
|
||
|
||
echo "[4/5] 等待服务就绪..."
|
||
sleep 5
|
||
|
||
# 检查健康检查
|
||
max_retries=30
|
||
retry_count=0
|
||
while [ $retry_count -lt $max_retries ]; do
|
||
if curl -f -s http://localhost:8000/health > /dev/null 2>&1; then
|
||
echo "✓ 后端服务健康检查通过"
|
||
break
|
||
fi
|
||
retry_count=$((retry_count + 1))
|
||
echo "等待后端服务启动... ($retry_count/$max_retries)"
|
||
sleep 2
|
||
done
|
||
|
||
if [ $retry_count -eq $max_retries ]; then
|
||
echo "警告: 后端服务健康检查超时"
|
||
echo "请检查日志: docker-compose logs backend"
|
||
fi
|
||
echo ""
|
||
|
||
echo "[5/5] 部署完成!"
|
||
echo ""
|
||
echo "=== 下一步 ==="
|
||
echo "1. 配置企业微信回调 URL: https://$DOMAIN/api/wecom/callback"
|
||
echo "2. Token: $WECOM_TOKEN"
|
||
echo "3. EncodingAESKey: $WECOM_ENCODING_AES_KEY"
|
||
echo ""
|
||
echo "查看日志: docker-compose logs -f backend"
|
||
echo "检查服务: docker-compose ps"
|
||
echo ""
|