添加上游同步自动化工具
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

View File

@@ -0,0 +1,65 @@
#!/bin/bash
# StarFireAPI 数据库备份脚本
# 用途:备份 PostgreSQL 数据库
# 使用bash backup_database.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"
BACKUP_DIR="$PROJECT_DIR/backups"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="$BACKUP_DIR/starfireapi_backup_${DATE}.sql.gz"
echo -e "${BLUE}=========================================="
echo "💾 StarFireAPI 数据库备份"
echo -e "==========================================${NC}"
echo ""
# 创建备份目录
mkdir -p "$BACKUP_DIR"
# 检查容器是否运行
cd "$PROJECT_DIR/deploy"
if ! docker-compose ps | grep -q "postgres.*Up"; then
echo -e "${RED}❌ PostgreSQL 容器未运行${NC}"
exit 1
fi
echo -e "${YELLOW}📦 开始备份数据库...${NC}"
echo "备份文件: $BACKUP_FILE"
echo ""
# 执行备份
docker exec sub2api-postgres pg_dump -U sub2api sub2api | gzip > "$BACKUP_FILE"
if [ $? -eq 0 ]; then
BACKUP_SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
echo -e "${GREEN}✓ 备份成功!${NC}"
echo "文件大小: $BACKUP_SIZE"
echo "保存位置: $BACKUP_FILE"
echo ""
# 清理旧备份(保留最近 7 天)
echo -e "${YELLOW}🧹 清理旧备份(保留最近 7 天)...${NC}"
find "$BACKUP_DIR" -name "starfireapi_backup_*.sql.gz" -mtime +7 -delete
# 显示所有备份
echo -e "${BLUE}📋 现有备份列表:${NC}"
ls -lh "$BACKUP_DIR"/starfireapi_backup_*.sql.gz 2>/dev/null || echo "无备份文件"
else
echo -e "${RED}❌ 备份失败${NC}"
exit 1
fi
echo ""
echo -e "${BLUE}=========================================="
echo "💡 恢复数据库命令"
echo -e "==========================================${NC}"
echo "gunzip < $BACKUP_FILE | docker exec -i sub2api-postgres psql -U sub2api sub2api"
echo ""