添加上游同步自动化工具
Some checks failed
CI / test (push) Has been cancelled
CI / golangci-lint (push) Has been cancelled
Security Scan / backend-security (push) Has been cancelled
Security Scan / frontend-security (push) Has been cancelled

新增工具脚本:
- scripts/sync-upstream.sh: 主同步脚本,自动从上游拉取并应用配置
- scripts/apply-branding.sh: 自动应用StarFireAPI品牌化修改
- scripts/apply-deploy-config.sh: 自动应用部署配置
- scripts/README.md: 工具使用说明

功能特性:
 自动备份当前分支
 从上游仓库拉取最新代码
 自动应用品牌化修改(Sub2API → StarFireAPI)
 自动应用部署配置(端口、Redis、镜像等)
 智能提示和确认
 支持回滚操作

使用方法:
chmod +x scripts/*.sh
./scripts/sync-upstream.sh

修改 .gitignore 以允许追踪自定义同步工具

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
huangzhenpc
2026-01-30 01:42:21 +08:00
parent e2c325505a
commit d46653b2c2
8 changed files with 711 additions and 1 deletions

110
scripts/check_status.sh Normal file
View File

@@ -0,0 +1,110 @@
#!/bin/bash
# StarFireAPI 服务状态检查脚本
# 用途:快速检查服务运行状态和健康度
# 使用bash check_status.sh
# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 项目目录
PROJECT_DIR="/opt/xinghuoapi/deploy"
echo -e "${BLUE}=========================================="
echo "📊 StarFireAPI 服务状态检查"
echo -e "==========================================${NC}"
echo ""
# 检查目录
if [ ! -d "$PROJECT_DIR" ]; then
echo -e "${RED}❌ 错误: 项目目录 $PROJECT_DIR 不存在${NC}"
exit 1
fi
cd "$PROJECT_DIR"
# 1. 容器状态
echo -e "${YELLOW}🐳 容器状态:${NC}"
docker-compose ps
echo ""
# 2. 服务健康检查
echo -e "${YELLOW}🏥 服务健康检查:${NC}"
# 检查 sub2api 容器
if docker-compose ps | grep -q "sub2api.*Up"; then
echo -e "${GREEN}✓ sub2api 容器运行中${NC}"
# 检查端口
if netstat -tlnp 2>/dev/null | grep -q ":6580"; then
echo -e "${GREEN}✓ 端口 6580 已监听${NC}"
else
echo -e "${RED}✗ 端口 6580 未监听${NC}"
fi
# 检查 HTTP 响应
if curl -s -o /dev/null -w "%{http_code}" http://localhost:6580 | grep -q "200\|301\|302"; then
echo -e "${GREEN}✓ HTTP 服务正常响应${NC}"
else
echo -e "${RED}✗ HTTP 服务无响应${NC}"
fi
else
echo -e "${RED}✗ sub2api 容器未运行${NC}"
fi
# 检查 postgres 容器
if docker-compose ps | grep -q "postgres.*Up"; then
echo -e "${GREEN}✓ PostgreSQL 容器运行中${NC}"
else
echo -e "${RED}✗ PostgreSQL 容器未运行${NC}"
fi
echo ""
# 3. 资源使用情况
echo -e "${YELLOW}💾 资源使用情况:${NC}"
docker stats --no-stream sub2api sub2api-postgres 2>/dev/null || echo "无法获取资源使用情况"
echo ""
# 4. 最近日志(最后 20 行)
echo -e "${YELLOW}📝 最近日志 (最后 20 行):${NC}"
docker-compose logs --tail 20 sub2api
echo ""
# 5. 错误日志检查
echo -e "${YELLOW}⚠️ 错误日志检查:${NC}"
ERROR_COUNT=$(docker-compose logs --tail 100 sub2api 2>/dev/null | grep -i "error\|fatal\|panic" | wc -l)
if [ "$ERROR_COUNT" -gt 0 ]; then
echo -e "${RED}发现 $ERROR_COUNT 条错误日志${NC}"
echo "最近的错误:"
docker-compose logs --tail 100 sub2api | grep -i "error\|fatal\|panic" | tail -5
else
echo -e "${GREEN}✓ 未发现错误日志${NC}"
fi
echo ""
# 6. 版本信息
echo -e "${YELLOW}📌 版本信息:${NC}"
VERSION=$(cat ../backend/cmd/server/VERSION 2>/dev/null || echo "未知")
echo "当前版本: $VERSION"
echo "最新提交: $(cd .. && git log --oneline -1)"
echo ""
# 7. 使用的镜像
echo -e "${YELLOW}🖼️ 使用的镜像:${NC}"
docker-compose ps -q sub2api | xargs docker inspect --format='{{.Config.Image}}' 2>/dev/null || echo "无法获取镜像信息"
echo ""
# 8. 快速操作提示
echo -e "${BLUE}=========================================="
echo "🔧 快速操作命令"
echo -e "==========================================${NC}"
echo "查看实时日志: docker-compose logs -f sub2api"
echo "重启服务: docker-compose restart sub2api"
echo "停止服务: docker-compose down"
echo "启动服务: docker-compose up -d"
echo "进入容器: docker exec -it sub2api sh"
echo ""