使用 Kopia(Docker) 备份 Linux 服务器文件到对象存储

✨ 文章介绍了如何使用开源备份工具 Kopia 通过 Docker 容器化部署将 Linux 服务器文件安全备份到对象存储(如 Cloudflare R2)。这可以帮助用户实现数据的端到端加密、高效去重以及免服务器架构的云端备份。

Kopia 是一款开源跨平台的备份工具,以高安全性(端到端加密)、极致的去重与压缩以及免服务器架构为核心特点。它不需要依赖中央服务器,可以直接将数据安全地备份到各种对象存储(如 AWS S3、阿里云 OSS、MinIO)、云盘(Google Drive、OneDrive)或本地存储 / NAS中。
竞品对比(AI 整理)
维度 / 特性KopiaResticBorgBackup (Borg)Duplicacy
开源协议开源免费 (Apache-2.0)开源免费 (BSD-2)开源免费 (BSD-3)源代码可用 (个人免费/商业收费)
官方图形界面有 (功能完备的 Kopia UI)无 (仅纯命令行 CLI)无 (依赖 Vorta 等第三方)有 (GUI 需付费订阅)
多机并发写入原生支持 (锁冲突极小)支持差 (易因锁仓导致排队)不支持 (独占锁,单机设计)原生支持 (双向无锁去重)
备份速度/去重极快 (块级去重+多线程)快 (内容感应去重)极快 (局部去重效果极好)极快 (基于独立哈希去重)
跨平台支持全平台 (Win/Mac/Linux)全平台 (Win/Mac/Linux)主要支持 Linux/Mac (Win极差)全平台 (Win/Mac/Linux)
资源占用低 (Go 语言开发)低 (Go 语言开发)低 (C/Python 开发)低 (Go 语言开发)
https://kopia.io/

按个人习惯统一容器化部署,这里就不用 CLI 配置了,开启 WebUI

compose.yaml
services:
  kopia:
    image: kopia/kopia:latest
    container_name: kopia
    restart: "unless-stopped"
    ports:
      - 127.0.0.1:1515:80
    command:
      - --log-level=info
      - --log-dir= 
      - server
      - start
      - --insecure
      - --address=0.0.0.0:80
      - --server-username=okhk
    volumes:
      - ./config:/app/config
      - ./cache:/app/cache
      - /path/to/data:/data:ro
      - /tmp/kopia:/tmp:shared
    hostname: "okhk"
    environment:
      KOPIA_SERVER_PASSWORD: "web_passwd" # Web UI 密码
      KOPIA_PASSWORD: "repo_passwd" # 备份仓库密码
      TZ: Asia/Singapore
    healthcheck:
      test: ["CMD-SHELL", "curl -s -w '%{http_code}' http://127.0.0.1 | grep -E '200|401' || exit 1"]
      start_period: 30s
      interval: 60s
      timeout: 10s
      retries: 3
启动后打开网页按配置的用户名密码登录
Cloudflare R2 配置
在 Cloudflare 上创建 R2 Bucket
创建 Access Key,赋予对应 Bucket 的读写权限
配置备份 Repository,将 Cloudflare R2 的信息填入,注意 Server Endpoint 不需要填写 https 前缀,只要 FQDN 的完整域名即可。
创建快照任务,填写待备份的文件夹路径
其中定时备份配置需求(Kopia 支持多重定时,会叠加生效
查看 R2 ,已经备份上传成功
⚠️
注意 Cloudflare R2 的计费规则:如果定时任务的 Interval 设置得太频繁(比如每 5 分钟备份一次),Kopia 会非常频繁地去扫描和比对 R2 上的文件,这会产生大量的 Class A / Class B 操作请求。
虽然 R2 每月有免费额度(A类 100万次,B类 1000万次),但如果备份源文件极多且频率过高,可能会超出免费额度。通常建议家用或办公电脑设置
1h(1小时)到 12h(12小时) 之间即可。