chore: 砍COS改造(deploy.yml改artifact传递+gitea-backup可移植部署包+改造步骤文档)

This commit is contained in:
zqlit committed 2026-10-04 09:52:50 +08:00
1 parent a74b3c7127
commit 2388694e8a
8 files changed
+729 -147

No files matched your search

+36
View File
@@ -0,0 +1,36 @@
#!/bin/bash
# =============================================================================
# Gitea 部署包 —— 一键备份
# 备份内容:
# 1. gitea dump(仓库 + 用户 + 配置 + secrets 加密导出)
# 2. 完整 data 卷(gitea.db / app.ini / runner 配置 / upyun-sync 目录)
# 产物输出到 backups/ 目录
# =============================================================================
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT_DIR="$(dirname "$SCRIPT_DIR")"
BACKUP_DIR="$ROOT_DIR/backups"
STAMP="$(date +%Y%m%d-%H%M%S)"
mkdir -p "$BACKUP_DIR"
echo "==> 1/2 导出 Gitea dump(含 secrets)..."
docker compose -f "$ROOT_DIR/docker-compose.yml" exec -T gitea \
gitea dump --config /data/gitea/conf/app.ini \
--file /data/gitea-dump.zip \
-R -S 2>/dev/null || {
echo "⚠️ gitea dump 失败(容器可能未运行),跳过,仅备份 data 卷"
}
# 把 dump 产物从容器拷出来
docker compose -f "$ROOT_DIR/docker-compose.yml" cp \
gitea:/data/gitea-dump.zip "$BACKUP_DIR/gitea-dump-$STAMP.zip" 2>/dev/null || true
echo "==> 2/2 打包 data 卷..."
tar -czf "$BACKUP_DIR/data-$STAMP.tar.gz" -C "$ROOT_DIR" data/
echo ""
echo "✅ 备份完成:"
ls -lh "$BACKUP_DIR" | tail -5
echo ""
echo "⚠️ 产物含密钥,请勿上传网盘/公开仓库。"
+55
View File
@@ -0,0 +1,55 @@
#!/bin/bash
# =============================================================================
# Gitea 部署包 —— 一键恢复
# 用法:bash restore.sh <backups/data-<时间戳>.tar.gz>
# 或 bash restore.sh <backups/gitea-dump-<时间戳>.zip>(仅恢复 dump)
# =============================================================================
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROOT_DIR="$(dirname "$SCRIPT_DIR")"
if [ $# -lt 1 ]; then
echo "用法:bash restore.sh <备份文件>"
echo " - data-*.tar.gz 恢复完整 data 卷"
echo " - gitea-dump-*.zip 仅恢复 gitea dump"
exit 1
fi
SRC="$1"
if [ ! -f "$SRC" ]; then
echo "❌ 找不到备份文件:$SRC"
exit 1
fi
echo "==> 停止服务..."
docker compose -f "$ROOT_DIR/docker-compose.yml" down 2>/dev/null || true
case "$SRC" in
*data-*.tar.gz)
echo "==> 恢复 data 卷..."
tar -xzf "$SRC" -C "$ROOT_DIR"
echo "✅ data 卷已恢复到 $ROOT_DIR/data/"
;;
*gitea-dump-*.zip)
echo "==> 恢复 gitea dump..."
docker compose -f "$ROOT_DIR/docker-compose.yml" up -d gitea
sleep 5
docker compose -f "$ROOT_DIR/docker-compose.yml" cp \
"$SRC" gitea:/data/restore.zip
docker compose -f "$ROOT_DIR/docker-compose.yml" exec -T gitea \
gitea restore --config /data/gitea/conf/app.ini --file /data/restore.zip
echo "✅ gitea dump 已恢复"
;;
*)
echo "❌ 无法识别的备份文件类型:$SRC"
exit 1
;;
esac
echo "==> 启动服务..."
docker compose -f "$ROOT_DIR/docker-compose.yml" up -d
echo "✅ 恢复完成,检查状态:"
docker compose -f "$ROOT_DIR/docker-compose.yml" ps