<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>🧯BuckUp :: Ay Docs</title>
    <link>https://ops.docs.72602.space/buckup/index.html</link>
    <description>This section documents backup strategies for each middleware/app deployed in the 72602 cluster.&#xA;Backup Quick Reference Service Method Data Frequency Restore PostgreSQL pg_dump All databases Daily crons psql restore Redis RDB/AOF Cache data On-demand Auto on restart Minio mc mirror Object storage Periodic mc mirror reverse N8N Web UI export Workflows + credentials Manual Web UI import Uptime Kuma Web UI Backup Monitors + settings Manual Web UI upload Open WebUI SQLite copy Chat history + config Manual File replace Homepage Git-managed Dashboard config On commit kubectl apply ElasticSearch Snapshot API Indexes Scheduled Snapshot restore Git repos GitHub hosting Source code Automatic Git clone PostgreSQL Redis Minio N8N Open WebUI Uptime Kuma ElasticSearch ES [Local Disk] ES [S3 Compatible] ES Auto BackUp Example Shell Script Homepage Git / GitLab GitLab K8s</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Tue, 12 May 2026 15:00:59 +0800</lastBuildDate>
    <atom:link href="https://ops.docs.72602.space/buckup/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>PostgreSQL</title>
      <link>https://ops.docs.72602.space/buckup/postgresql/index.html</link>
      <pubDate>Tue, 12 May 2026 15:00:59 +0800</pubDate>
      <guid>https://ops.docs.72602.space/buckup/postgresql/index.html</guid>
      <description>Prerequisites alias pgk=&#39;kubectl -n database exec deployment/postgresql --&#39; 全量备份所有数据库 pgk pg_dumpall -U postgres &gt; postgresql-full-$(date +%Y%m%d).sql 备份单个数据库 pgk pg_dump -U postgres &lt;dbname&gt; &gt; &lt;dbname&gt;-$(date +%Y%m%d).sql 备份到 PVC 内 pgk sh -c &#39;pg_dumpall -U postgres &gt; /bitnami/postgresql/backup-$(date +%Y%m%d).sql&#39; 从备份文件恢复 # 全量恢复 cat postgresql-full-20260512.sql | pgk psql -U postgres # 单库恢复（先创建空库） pgk psql -U postgres -c &#34;CREATE DATABASE &lt;dbname&gt;;&#34; cat &lt;dbname&gt;-20260512.sql | pgk psql -U postgres -d &lt;dbname&gt; 定时备份（CronJob） apiVersion: batch/v1 kind: CronJob metadata: name: postgresql-backup namespace: database spec: schedule: &#34;0 3 * * *&#34; jobTemplate: spec: template: spec: containers: - name: backup image: m.daocloud.io/docker.io/bitnami/postgresql:latest command: - sh - -c - | pg_dumpall -U postgres -h postgresql \ &gt; /backup/postgresql-$(date +%Y%m%d%H%M).sql find /backup -name &#34;*.sql&#34; -mtime +7 -delete volumeMounts: - name: backup mountPath: /backup restartPolicy: Never volumes: - name: backup hostPath: path: /data/backups/postgresql</description>
    </item>
    <item>
      <title>Redis</title>
      <link>https://ops.docs.72602.space/buckup/redis/index.html</link>
      <pubDate>Tue, 12 May 2026 15:00:59 +0800</pubDate>
      <guid>https://ops.docs.72602.space/buckup/redis/index.html</guid>
      <description>Manual RDB backup # Trigger RDB save kubectl -n storage exec redis-shared-master-0 -- redis-cli -a &lt;password&gt; SAVE # Copy RDB file kubectl -n storage cp redis-shared-master-0:/data/dump.rdb ./redis-backup-$(date +%Y%m%d).rdb Manual AOF backup # Trigger AOF rewrite kubectl -n storage exec redis-shared-master-0 -- redis-cli -a &lt;password&gt; BGREWRITEAOF # Copy AOF file kubectl -n storage cp redis-shared-master-0:/data/appendonly.aof.1.base.rdb ./redis-aof-$(date +%Y%m%d).rdb Restore # Copy backup file to pod kubectl -n storage cp ./redis-backup-20260512.rdb redis-shared-master-0:/data/dump.rdb # Restart pod to reload RDB kubectl -n storage delete pod redis-shared-master-0 # Redis will load dump.rdb on startup ⚠️ Redis data is ephemeral cache — for most apps, losing Redis is inconvenient but not catastrophic. Prioritize PostgreSQL backups.</description>
    </item>
    <item>
      <title>Minio</title>
      <link>https://ops.docs.72602.space/buckup/minio/index.html</link>
      <pubDate>Tue, 12 May 2026 15:00:59 +0800</pubDate>
      <guid>https://ops.docs.72602.space/buckup/minio/index.html</guid>
      <description>Prerequisites alias mc=&#39;kubectl -n storage exec deployment/minio -- mc&#39; mc config host add myminio http://minio.storage.svc:9000 &lt;access-key&gt; &lt;secret-key&gt; Backup a bucket mc mirror myminio/my-bucket ./backups/my-bucket/ Restore a bucket mc mirror ./backups/my-bucket/ myminio/my-bucket Backup all buckets (script) for bucket in $(mc ls myminio | awk &#39;{print $NF}&#39;); do echo &#34;Backing up $bucket ...&#34; mc mirror myminio/$bucket ./backups/$bucket/ done Scheduled backup (CronJob) apiVersion: batch/v1 kind: CronJob metadata: name: minio-backup namespace: storage spec: schedule: &#34;0 4 * * *&#34; jobTemplate: spec: template: spec: containers: - name: backup image: m.daocloud.io/docker.io/minio/mc:latest command: - sh - -c - | mc alias set myminio http://minio.storage.svc:9000 $ACCESS_KEY $SECRET_KEY mc mirror myminio/ ./backup/$(date +%Y%m%d)/ env: - name: ACCESS_KEY valueFrom: secretKeyRef: name: minio key: root-user - name: SECRET_KEY valueFrom: secretKeyRef: name: minio key: root-password volumeMounts: - name: backup mountPath: /backup restartPolicy: Never volumes: - name: backup hostPath: path: /data/backups/minio</description>
    </item>
    <item>
      <title>N8N</title>
      <link>https://ops.docs.72602.space/buckup/n8n/index.html</link>
      <pubDate>Tue, 12 May 2026 15:00:59 +0800</pubDate>
      <guid>https://ops.docs.72602.space/buckup/n8n/index.html</guid>
      <description>Method 1: Web UI Export (Recommended) N8N 内置了工作流导入导出功能：&#xA;登录 https://n8n.72602.online 进入 Workflows 列表页面 勾选需要备份的工作流 点击 Download → 导出为 JSON 文件 如需恢复，点击 Import from File Method 2: API Export # 获取所有工作流 curl -s -u &lt;email&gt;:&lt;password&gt; https://n8n.72602.online/rest/workflows \ | jq . &gt; n8n-workflows-$(date +%Y%m%d).json Method 3: PostgreSQL Database Backup N8N 的工作流定义存储在 PostgreSQL 中。备份 PG 即可包含 N8N 数据：&#xA;pg_dump -U postgres -h postgresql.database n8n &gt; n8n-db-$(date +%Y%m%d).sql N8N 的凭证（Credentials）包含 API key 等敏感信息，建议在 Export 时选择 Include Credentials 并妥善保管导出的文件。</description>
    </item>
    <item>
      <title>Open WebUI</title>
      <link>https://ops.docs.72602.space/buckup/openwebui/index.html</link>
      <pubDate>Tue, 12 May 2026 15:00:59 +0800</pubDate>
      <guid>https://ops.docs.72602.space/buckup/openwebui/index.html</guid>
      <description>Backup Chat History (SQLite) Open WebUI 的数据默认存储在 SQLite 数据库中：&#xA;# 备份数据库文件 kubectl -n ai exec open-webui-0 -- cat /app/backend/data/webui.db &gt; open-webui-$(date +%Y%m%d).db Restore # 复制备份文件到 pod kubectl -n ai cp open-webui-20260512.db open-webui-0:/app/backend/data/webui.db # 重启 pod 以重新加载数据库 kubectl -n ai delete pod open-webui-0 注意事项 备份文件包含：聊天记录、用户设置、外部连接配置 不包含：对话中的文件附件（存储在 static/uploads/ 目录） 如需完整恢复，还需备份上传文件： kubectl -n ai exec open-webui-0 -- tar czf - /app/backend/data/uploads &gt; open-webui-uploads-$(date +%Y%m%d).tar.gz</description>
    </item>
    <item>
      <title>Uptime Kuma</title>
      <link>https://ops.docs.72602.space/buckup/uptimekuma/index.html</link>
      <pubDate>Tue, 12 May 2026 15:00:59 +0800</pubDate>
      <guid>https://ops.docs.72602.space/buckup/uptimekuma/index.html</guid>
      <description>Backup via Web UI Uptime Kuma 内置了备份功能：&#xA;登录 https://uptime.72602.space 进入 Settings → Backup 点击 Export → 下载 JSON 文件 备份文件包含：所有监控项、状态页配置、通知设置 Restore 登录 Uptime Kuma 进入 Settings → Backup 点击 Import → 选择之前下载的 JSON 文件 确认后自动恢复所有配置 注意事项 备份文件不包含监控历史数据，只包含配置 历史数据存储在 SQLite 数据库中（/app/data/kuma.db） Uptime Kuma 的 PVC 没有自动备份。2026-10-01 恢复时，旧 PVC/PV 已不存在，仓库中也没有 UI 导出或 SQLite 备份；当前实例使用全新的空数据库，原监控项、通知设置和历史记录无法从集群恢复。 重新创建 ZJLAB Push 监控后，必须把新生成的 Push URL 更新到 ECS 私有配置中；不要继续使用旧 URL。 如需保留历史，可以备份 SQLite 文件： kubectl -n monitor exec deploy/uptime-kuma -- cat /app/data/kuma.db &gt; kuma-backup-$(date +%Y%m%d).db</description>
    </item>
    <item>
      <title>ElasticSearch</title>
      <link>https://ops.docs.72602.space/buckup/elasticsearch/index.html</link>
      <pubDate>Thu, 07 Mar 2024 15:00:59 +0800</pubDate>
      <guid>https://ops.docs.72602.space/buckup/elasticsearch/index.html</guid>
      <description>ES [Local Disk] ES [S3 Compatible] ES Auto BackUp Example Shell Script</description>
    </item>
    <item>
      <title>Homepage</title>
      <link>https://ops.docs.72602.space/buckup/homepage/index.html</link>
      <pubDate>Tue, 12 May 2026 15:00:59 +0800</pubDate>
      <guid>https://ops.docs.72602.space/buckup/homepage/index.html</guid>
      <description>Backup Homepage 的配置全部存储在 Git 仓库中：&#xA;路径 内容 manifests/homepage/config/bookmarks.yaml 书签 manifests/homepage/config/services.yaml 服务 widgets manifests/homepage/config/settings.yaml 布局设置 manifests/homepage/config/widgets.yaml 仪表盘小部件 manifests/homepage/config/docker.yaml Docker 集成 manifests/homepage/config/kubernetes.yaml K8s 集成 manifests/homepage/configmap.yaml 生成的 ConfigMap 恢复步骤 # 1. 确认配置文件正确 bash scripts/gen-homepage-configmap.sh # 2. 更新 ConfigMap kubectl -n monitor apply -f manifests/homepage/configmap.yaml # 3. 触发重载 kubectl -n monitor rollout restart deploy/homepage</description>
    </item>
    <item>
      <title>Git / GitLab</title>
      <link>https://ops.docs.72602.space/buckup/git/index.html</link>
      <pubDate>Tue, 12 May 2026 15:00:59 +0800</pubDate>
      <guid>https://ops.docs.72602.space/buckup/git/index.html</guid>
      <description>GitLab Backup GitLab via Omnibus # 创建备份（Omnibus 安装） sudo gitlab-rake gitlab:backup:create # 备份文件位置 ls -la /var/opt/gitlab/backups/ # 恢复 sudo gitlab-rake gitlab:backup:restore BACKUP=&lt;timestamp&gt; Backup GitLab on Kubernetes # 备份数据库 kubectl -n gitlab exec deploy/gitlab -- gitlab-backup create # 复制备份到本地 kubectl -n gitlab cp gitlab-pod:/var/opt/gitlab/backups/&lt;backup-file&gt; ./ GitHub (General) 当前项目托管在 GitHub 上，数据安全由 GitHub 保障。&#xA;如需额外备份：&#xA;# 备份所有仓库 gh repo list --limit 100 --json nameWithOwner -q &#39;.[].nameWithOwner&#39; | \ while read repo; do git clone --mirror &#34;https://github.com/$repo&#34; &#34;backups/$repo.git&#34; done</description>
    </item>
    <item>
      <title>K8s</title>
      <link>https://ops.docs.72602.space/buckup/k8s/index.html</link>
      <pubDate>Thu, 07 Mar 2024 15:00:59 +0800</pubDate>
      <guid>https://ops.docs.72602.space/buckup/k8s/index.html</guid>
      <description></description>
    </item>
  </channel>
</rss>