我家那台 NAS 上跑的东西越来越多,照片、音乐、各种配置文件,备份这事儿一直是我心里的一根刺。之前折腾过 Kopia,带界面的去重备份确实省心。但命令行党里还有个更老牌的选择——restic,它快、稳、支持的后端多到离谱,就是没有界面,全靠敲命令和写 cron。今天聊的 Backrest,就是给 restic 套了个能远程访问的 Web 外壳,把”建仓库、排计划、浏览快照、恢复文件”全收进一个面板里。
是什么:restic 的 Web 编排器
Backrest 本身不是备份引擎,它站在 restic 肩膀上。restic 才是真正干活的——加密、去重、增量快照、跨后端存储,这些都是 restic 的活。Backrest 用 Go 写了一个轻量单二进制(不到 20MB),第一次启动会自动下载并管理一个它测试过版本的 restic,然后在外面套一层 Web UI 和调度逻辑。
也就是说,你得到的体验是:打开浏览器就能建仓库、加备份计划、看实时进度条、从快照里翻文件恢复;背后实际跑的还是 restic 那套成熟可靠的命令。需要更底层的控制时,你照样可以直接拿 restic CLI 去操作同一个仓库,Backrest 还能识别并导入你在外面手动做的备份。

为什么值得看一眼
restic 的痛点很明确:没有原生 GUI,排计划和做维护(prune/check/forget)都得自己写脚本。Backrest 刚好补上这块。它做的几件事对我来说很实用:
- 远程访问:默认监听 9898,扔在 NAS 上,桌面浏览器直接开,不用 SSH 进去敲命令。
- Cron 调度:每个备份计划能单独设调度表达式,还能配独立的保留策略(比如每天保留 30 天、每周保留 6 个月)。
- 仓库健康操作自动化:forget 每次备份后跑,prune 默认每 7 天跑一次,不用自己记着维护。
- 快照浏览与恢复:Web 里直接翻某个时间点的快照、勾选文件恢复,比记 restic 的 restore 参数轻松太多。
- 通知和钩子:备份开始/完成/出错能推到 Discord、Slack、Shoutrrr、Gotify、Healthchecks;还能在备份前后跑自定义 shell 命令。
支持的后端就是 restic 那一整套:本地、SFTP、S3、B2、Azure、GCS,以及所有 rclone remote。这点比 Kopia 那种自带 server 的模式灵活——你本来就有一堆 rclone 配置的话,直接复用就行。
怎么跑起来
最简单是 Docker,官方镜像在 ghcr.io/garethgeorge/backrest:latest(也同步在 Docker Hub),自带 rclone 和常用 Unix 工具。一个最小 compose 大概是:
services:
backrest:
image: ghcr.io/garethgeorge/backrest:latest
container_name: backrest
volumes:
- ./backrest/data:/data
- ./backrest/config:/config
- ./backrest/cache:/cache
- /path/to/backup/data:/userdata
environment:
- BACKREST_DATA=/data
- BACKREST_CONFIG=/config/config.json
- XDG_CACHE_HOME=/cache
ports:
- "9898:9898"
restart: unless-stopped
把要备份的目录挂到 /userdata 下,起来后开 http://NAS地址:9898,首次会让你建用户名和密码,建好仓库、加个计划就能用。macOS 上也能走 Homebrew tap(brew tap garethgeorge/homebrew-backrest-tap),或者下 Darwin 包用 launchd 常驻;Windows 有带托盘图标的安装包。

几个真坑
我把官方文档和 release note 过了一遍,结合 restic 生态的共性,几个值得提前知道的点:
- 默认只绑 localhost。Docker 镜像默认
0.0.0.0:9898,但二进制安装默认是127.0.0.1:9898。想在别的机器访问,得改BACKREST_PORT环境变量——而且一旦暴露到局域网,记得前面套一层带认证的代理,别裸奔。 - 它管的是 restic 的版本。Backrest 会锁定一个它测试过的 restic 版本来保证稳定性。你如果想用系统里已有的 restic,得设
BACKREST_RESTIC_COMMAND指过去,否则它会自作主张下载自己的。 - prune 是重操作。默认每 7 天跑一次,大仓库会吃 CPU 和 IO,别排在你 NAS 正忙的时间点。保留策略配错的话,可能把你还想留的快照 forget 掉。
- 备份责任还在你。Backrest 不替你验证”恢复真的能用”。restic 有
check命令,但 Backrest 的自动健康操作默认侧重 forget/prune,定期做一次恢复演练比什么都重要。 - 近期版本的 silent bug。v1.14.0/1.14.1 修复过”计划保留策略被静默跳过””repo ID 变更后快照文件下载失败”这类问题。所以别用太老的版本,但也别急着吃第一口新版——这类编排层的 bug 影响的是”你以为备份了其实没按策略留”。

和 Kopia 怎么选
我之前写过 Kopia,它自带 server、自带去重引擎、有自己的一套策略模型,是”一体化”选手。Backrest 是”restic + 界面”的”组合”选手。简单说:
- 如果你已经在用 restic,或者有一堆 rclone remote 想直接复用,Backrest 几乎是零摩擦接入,还能导入你现有的仓库。
- 如果你从零开始、想要一个自带后端和 server 的闭环,Kopia 更省事,不用先理解 restic 的那套概念。
- 两者都支持浏览器远程访问、都支持通知和计划——这部分体验接近。
小结
Backrest 最新到 v1.14.1(2026-07-12 发的补丁版),顺手把 restic 升到了 v0.19.1,还重做了概览面板、加了托盘备份状态指示。它解决的是 restic 用户最实际的痛点:别再手写 cron 和 restore 命令了。我这种 NAS 上已经攒了一堆 rclone 配置的人,最看重它”复用现有后端 + 远程面板”这两点。备份这事儿没有银弹,但把一个靠谱的引擎包进好用的壳里,至少让我这种懒人更愿意坚持下来。