Files
xiaoxia-saas/infra/scripts/init-server.sh
T
2026-06-21 18:27:16 +08:00

62 lines
1.6 KiB
Bash
Raw 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.
#!/bin/bash
set -e
echo "🚀 初始化小虾 SaaS 服务器..."
# 1. 创建 Docker 网络
echo "📡 创建 Docker 网络..."
docker network create xiaoxia-net 2>/dev/null || echo " 网络已存在,跳过"
# 2. 启动基础设施(Postgres + Redis
echo "🗄️ 启动基础设施(Postgres + Redis..."
cd /var/lib/xiaoxia-saas-staging/repo/infra/docker
docker compose -f infra.yml up -d
# 3. 等待数据库就绪
echo "⏳ 等待数据库启动..."
for i in {1..30}; do
if docker exec xiaoxia-postgres pg_isready -U xiaoxia > /dev/null 2>&1; then
echo "✅ 数据库已就绪"
break
fi
if [ $i -eq 30 ]; then
echo "❌ 数据库启动超时"
exit 1
fi
sleep 2
done
# 4. 初始化数据库扩展
echo "🔧 初始化数据库扩展..."
docker exec xiaoxia-postgres psql -U xiaoxia -d xiaoxia_saas -c "CREATE EXTENSION IF NOT EXISTS \"uuid-ossp\";" 2>/dev/null || true
# 5. 启动应用(API + Worker + Web
echo "🚀 启动应用服务..."
docker compose up -d
# 6. 健康检查
echo "⏳ 等待应用启动..."
for i in {1..30}; do
if docker exec xiaoxia-api-staging wget -q --spider http://localhost:8000/api/v1/health 2>/dev/null; then
echo "✅ 应用已就绪"
break
fi
if [ $i -eq 30 ]; then
echo "⚠️ 应用健康检查未通过,请手动检查日志"
docker compose logs api
exit 0
fi
sleep 2
done
echo ""
echo "🎉 初始化完成!"
echo ""
echo "📍 服务访问地址:"
echo " Web: https://xiaoxiajianji.com"
echo " API: https://api.xiaoxiajianji.com/docs"
echo " Git: https://git.xiaoxiajianji.com"
echo ""
echo "📊 容器状态:"
docker compose ps