- 镜像 pinned charmcli/soft-serve:v0.12.2(GHCR 为 dev/nightly 源,无 v0.12.x tag) - soft-serve-backup sidecar:每日 02:00 sqlite .backup + repos-config 打包,03:00 prune 保留 14 份 - 非 root 运行(user 1000:1000),data chown;ssh.public_url 修复 - compose 源码参考:compose/soft-serve/(服务器文件为准)
16 lines
554 B
Bash
16 lines
554 B
Bash
#!/bin/sh
|
|
set -eu
|
|
umask 077
|
|
D() { date "+%Y-%m-%d %H:%M:%S"; }
|
|
TS=$(date +%Y%m%d_%H%M%S)
|
|
OUT="/backup/soft-serve_${TS}"
|
|
mkdir -p "$OUT"
|
|
echo "[$(D)] Starting soft-serve backup -> $OUT"
|
|
tar czf "$OUT/repos-config.tar.gz" -C /data repos hooks config.yaml ssh
|
|
sqlite3 /data/soft-serve.db ".backup '$OUT/soft-serve.db'"
|
|
chmod 600 "$OUT/repos-config.tar.gz" "$OUT/soft-serve.db"
|
|
if [ -n "${BACKUP_UID:-}" ] && [ -n "${BACKUP_GID:-}" ]; then
|
|
chown -R "$BACKUP_UID:$BACKUP_GID" "$OUT" /backup/backup.log
|
|
fi
|
|
echo "[$(D)] Backup OK: $(du -sh "$OUT" | cut -f1)"
|