- 新增完整的 Python 实现,替代 Go 版本 - 添加 Web 登录界面和仪表板 - 实现 JWT 认证和 API 密钥管理 - 添加数据库存储功能 - 保持与 Go 版本一致的目录结构和启动脚本 - 包含完整的文档和测试脚本
64 lines
1.5 KiB
Bash
Executable File
64 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Gitea Webhook Ambassador 启动脚本
|
|
|
|
set -e
|
|
|
|
# 检查虚拟环境
|
|
if [ ! -d "venv" ]; then
|
|
echo "❌ 虚拟环境不存在,请先运行 ./scripts/setup.sh"
|
|
exit 1
|
|
fi
|
|
|
|
# 激活虚拟环境
|
|
source venv/bin/activate
|
|
|
|
# 检查环境文件
|
|
if [ ! -f ".env" ]; then
|
|
echo "❌ .env 文件不存在,请先运行 ./scripts/setup.sh"
|
|
exit 1
|
|
fi
|
|
|
|
# 检查 Redis 是否运行
|
|
if ! docker ps | grep -q redis; then
|
|
echo "🐳 启动 Redis..."
|
|
docker run -d --name webhook-redis -p 6379:6379 redis:alpine
|
|
sleep 3
|
|
fi
|
|
|
|
echo "🚀 启动 Gitea Webhook Ambassador..."
|
|
|
|
# 启动 API 服务
|
|
echo "🌐 启动 API 服务..."
|
|
python -m uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload &
|
|
API_PID=$!
|
|
|
|
# 等待 API 服务启动
|
|
sleep 5
|
|
|
|
# 启动 Celery worker
|
|
echo "⚙️ 启动 Celery worker..."
|
|
celery -A app.tasks.jenkins_tasks worker --loglevel=info --concurrency=4 &
|
|
WORKER_PID=$!
|
|
|
|
# 启动 Celery beat (定时任务)
|
|
echo "⏰ 启动定时任务调度器..."
|
|
celery -A app.tasks.jenkins_tasks beat --loglevel=info &
|
|
BEAT_PID=$!
|
|
|
|
echo "✅ 所有服务已启动!"
|
|
echo ""
|
|
echo "📊 服务状态:"
|
|
echo "- API 服务: http://localhost:8000 (PID: $API_PID)"
|
|
echo "- 健康检查: http://localhost:8000/health"
|
|
echo "- 监控指标: http://localhost:8000/metrics"
|
|
echo "- Celery Worker: PID $WORKER_PID"
|
|
echo "- Celery Beat: PID $BEAT_PID"
|
|
echo ""
|
|
echo "🛑 按 Ctrl+C 停止所有服务"
|
|
|
|
# 等待中断信号
|
|
trap 'echo "🛑 正在停止服务..."; kill $API_PID $WORKER_PID $BEAT_PID 2>/dev/null; exit 0' INT
|
|
|
|
# 等待所有后台进程
|
|
wait |