Backrest v1.14.1 介绍与选型指南
Backrest 是 restic 的 Web UI 与备份编排器(GPLv3,Go 单二进制),本文基于官方源溯源其架构、功能与选型对比,检索日期 2026-10-26。
Backrest v1.14.1 介绍与选型指南
目标:讲清 Backrest 是什么、能解决什么问题、与其他备份工具/前端的量化差异,帮助你在 10 分钟内完成「是否选用」的判断。本文为纯联网溯源撰写的认知篇:所有事实、版本与量化数据均来自官方源并标注检索日期(2026-10-26),未包含本地部署实测结论;部署、配置与命令操作请见本专栏后续实战篇。
一、环境信息
- 信息检索日期:2026-10-26(文中所有版本号、星数、发布记录均以此日期为准);
- 官方仓库:
github.com/garethgeorge/backrest(官方文档站garethgeorge.github.io/backrest); - 本篇引用的量化口径:GitHub 仓库星数取自 shields.io 徽章(检索日快照),版本与发布记录取自 GitHub Releases 页与 pkg.go.dev 版本列表。
💡 说明:Backrest 与 pgBackRest 名字高度相似但毫无血缘关系,前者是 restic 的 Web 管理界面,后者是 PostgreSQL 专用的备份恢复工具,选型时务必先划清这条界线(详见本文七、7.4)。
二、软件概述
2.1 一句话定位
Backrest 是构建在 restic 之上的 Web UI 与备份编排器(官方原话:Web UI and orchestrator for restic backup):它把 restic CLI 的仓库创建、快照浏览、文件恢复等操作封装成浏览器可用的界面,并在后台以一套有主张(opinionated)的方式负责定时备份调度与仓库健康维护(forget/prune/check)。
2.2 基本事实(检索日快照)
| 项目 | 值 | 来源与口径 |
|---|---|---|
| 最新稳定版 | v1.14.1(2026-07-12 发布) | GitHub Releases 页 |
| 前一版本 | v1.13.0(2026-05-04)、v1.14.0(2026-07-12) | pkg.go.dev 版本列表 |
| 开源许可 | GPLv3 | 仓库 LICENSE 文件 |
| 开发语言 | 后端 Go,前端 SvelteKit | 官方 README/文档站 |
| 交付形态 | 单二进制(含嵌入式 WebUI),唯一外部依赖为 restic | 官方 README |
| 内置 restic | v1.14.0 起捆绑 restic v0.19.1,并由 Backrest 自动托管升级 | v1.14.0 Release Notes |
| GitHub 星数 | 7.7k | shields.io 徽章(2026-10-26) |
| 上游 restic 星数 | 37k | shields.io 徽章(2026-10-26) |
💡 说明:Backrest 本身不做备份引擎——所有快照都是标准 restic 仓库。这意味着即使某天放弃 Backrest,仓库仍可用原生 restic CLI 直接读写,不存在私有格式锁定。这是它与大多数「自带备份格式」工具的本质区别,也是选型时最值得称道的一点。
2.3 更名核查
社区曾有「Backrest 与 pgBackRest 混淆」的更名讨论动向。经 2026-10-26 实查:GitHub 仓库仍为 garethgeorge/backrest,官方文档站仍为 garethgeorge.github.io/backrest,v1.14.1 发布公告亦以 Backrest 命名,截至检索日项目未更名。若后续跟进发现官方更名,应以官方最新名称为准。
三、核心架构
3.1 组件与数据流
Backrest 是单进程 Go 服务,内嵌 SvelteKit 构建的 WebUI 与 gRPC API。其核心数据流为:
浏览器(WebUI) ──gRPC/HTTP──> Backrest 服务进程 ──调 CLI──> restic 二进制 ──读写──> 备份仓库
│
├─ config.json(仓库/计划/钩子/用户配置)
└─ 本地数据库(操作日志、运行记录)
四个角色各司其职:WebUI 负责人机交互;Backrest 服务进程负责配置管理、调度编排与操作日志;restic 负责真正的去重、加密与传输;仓库则是标准 restic 存储布局(config/keys/data/index/locks/snapshots 目录)。
3.2 调度与编排
Backrest 内置编排器(orchestrator):启动时按计划表生成任务队列,到点自动运行备份,备份成功后自动执行 forget(按保留策略裁剪快照),并按仓库的 Prune/Check 策略定期维护。以官方文档的术语体系看,它把 restic 的四类核心操作(Backup/Forget/Prune/Restore)全部纳入统一管理与可视化。
💡 技术拓展:备份调度方式不止一种,常见对比如下。
调度方式 原理/特点 适用场景 系统层调度(cron/systemd timer) 由操作系统定时拉起备份命令,工具本身无调度能力 脚本型工具(裸 restic、resticprofile) 应用内调度(cron 表达式/固定间隔/上次运行时间) 常驻进程自己维护任务队列,可感知任务重叠、失败重试 Backrest 这类带编排器的服务 云端调度 由备份目标端/控制面触发 SaaS 备份产品 Backrest 采用应用内调度,支持 cron 表达式、最大频率间隔与「按上次运行时间」三种时钟口径,无需额外安装 cron 任务。
四、功能特性
依据官方 README 与文档站(检索日版本 v1.14.1),Backrest 的主要能力如下:
- 仓库管理:新建 restic 仓库或接入既有仓库;支持本地路径、SFTP、S3、B2、Google Cloud、rclone 远端等 restic 全系存储后端(URI 格式如
b2:bucket、s3:bucket、sftp:user@host:/path、rclone:remote:path); - 备份计划:按计划定义备份路径、排除项、调度(cron/间隔/上次运行时间)与保留策略(按数量/按时间桶);
- 快照浏览与恢复:网页内浏览快照文件树,支持整树恢复到指定路径或下载单个文件;
- 仓库健康维护:自动调度 forget/prune/check/stats/unlock 等维护任务,可视化查看结果;
- 钩子与通知:按操作阶段(开始/成功/失败/警告等)触发命令钩子,或推送 Discord/Gotify/Slack/Shoutrrr/Healthchecks 通知;
- 多主机同步:多台机器上的 Backrest 实例可互相同步操作记录与快照状态(v1.14 系列持续修复 sync 相关问题);
- 国际化与托盘:界面多语言(v1.14.0 新增韩语、波兰语翻译),Windows/macOS 安装包内置托盘图标并反映备份状态,Linux 提供实验性托盘(
install.sh --experimental-linux-tray); - 运行兼容性:单二进制跨平台(Linux/Windows/macOS),可作为 systemd 服务常驻。
五、快速开始(最小可用示例)
以下流程整理自官方文档站 getting-started 页(检索日版本),用于建立整体认知;逐步骤的完整命令与实测回显见本专栏部署篇。
- 安装:从 GitHub Releases 下载对应平台发布包(Linux x86_64 为
backrest_Linux_x86_64.tar.gz,包内含backrest二进制与install.sh安装脚本),执行安装脚本后由 systemd 托管启动; - 首次访问:浏览器打开
http://<服务器IP>:9898,完成实例 ID 与首个管理用户的初始化(用户凭据保存在~/.config/backrest/config.json;官方文档说明:忘记凭据时可删除配置中的users字段并重启服务来重置); - 新建仓库(Add Repo):填写仓库名称与 URI(本地备份填一个磁盘目录即可,远端按后端填
s3:/b2:/sftp:等 URI 并配好环境变量),设置加密密码; - 新建计划(Add Plan):选择仓库、填写要备份的路径、设置 cron 调度(如每日零点
0 0 * * *)与保留策略; - 运行与恢复:在计划页手动触发备份,完成后进入快照视图浏览文件树并恢复。
⚠️ 注意:官方文档特别强调——仓库加密密码与
config.json必须异地另存一份(如密码管理器或加密存储),丢失后数据将无法恢复。
六、适用场景与限制
6.1 适用场景
- 个人/家庭实验室服务器:需要图形界面管理多目录定时备份,又要保留 restic 的去重、加密与快照能力;
- 中小团队 Linux 服务器:单节点自托管备份中枢,通过 S3/B2/rclone 把快照推到对象存储,配合钩子通知实现「备份失败即知」;
- 多机统一视图:多台装有 Backrest 的机器互相同步状态,在一处查看全部实例的备份健康度;
- restic 用户的可视化层:已有 restic 仓库,希望不改变仓库格式的前提下获得 Web 管理能力(Backrest 可直接接管既有仓库并索引历史快照)。
6.2 限制与注意
- 不管理数据库热备:Backrest 只负责文件级快照;MySQL/PostgreSQL 等需要一致性的备份应先落盘逻辑备份(如
mysqldump),再由 Backrest 对产物做快照; - 单实例单机视角:调度与配置随实例本地保存(多主机同步是状态同步而非集中控制面),没有天然的中心化多租户管理;
- 依赖 restic 版本匹配:托管 restic 由 Backrest 自动下载管理,网络受限环境需要手动放置 restic 二进制(部署篇有完整排障实录);
- GPLv3 许可:集成到自有产品时需注意开源义务边界。
七、同类选型对比
7.1 对比范围说明
围绕「用 restic 做文件级备份」这一目标,可选路线有四类:裸 restic CLI、restic 配置增强器(resticprofile)、restic Web 前端(Backrest)、以及非 restic 生态的对位产品(Borg 系 GUI/托管)。另有名字相近的 pgBackRest 属于完全不同的领域,单列划界。
7.2 量化对比表(检索日 2026-10-26)
| 维度 | Backrest | resticprofile | 裸 restic | Vorta | pgBackRest |
|---|---|---|---|---|---|
| 定位 | restic 的 Web UI + 编排器 | restic 的声明式配置启动器 | 去重加密备份引擎本身 | BorgBackup 桌面 GUI(Qt) | PostgreSQL 专用备份恢复 |
| GitHub 星数 | 7.7k | 1.4k | 37k | 2.5k | —(非本生态) |
| 交互方式 | 浏览器 WebUI + gRPC API | CLI + YAML/JSON/TOML/HCL 配置 | 纯 CLI | 桌面应用 | CLI + 配置文件 |
| 内置调度 | 有(cron/间隔/上次运行时间) | 无(依赖 cron/systemd timer) | 无(需自配 cron) | 有(桌面端定时) | 有(配合 cron) |
| 仓库格式 | 标准 restic 仓库 | 标准 restic 仓库 | 标准 restic 仓库 | Borg 仓库 | 自有格式(非 restic) |
| 恢复体验 | 网页浏览文件树/整树恢复/单文件下载 | 交给 restic CLI | CLI restore | 桌面恢复对话框 | 命令行/pgbackrest 体系 |
| 通知能力 | 钩子命令 + Discord/Gotify/Slack/Shoutrrr/Healthchecks | 依赖外部脚本 | 依赖外部脚本 | 桌面通知 | 依赖外部脚本/PG 生态 |
| 适用形态 | 常驻服务(Linux/Win/macOS) | 常驻或定时皆可 | 定时任务 | 个人桌面 | 数据库服务器 |
| 许可 | GPLv3 | GPL 系 | BSD-2 | GPLv3 | MIT |
(星数均为 shields.io 检索日快照;pgBackRest 不适用本生态口径,故不列星数。)
关键差异与选型口径:要「看得见、点得动、有通知」的常驻备份服务,选 Backrest;要「配置即代码、融入既有 cron 体系、无 Web 暴露面」,选 resticprofile;只做一次性/脚本化备份且熟悉 CLI,裸 restic 足够;桌面端个人备份且偏好 Borg,选 Vorta;备份对象是 PostgreSQL 数据库本身,直接用 pgBackRest。
7.3 Backrest vs resticprofile 复合方案
两者并非完全互斥:Backrest 解决「人机交互与编排」,resticprofile 解决「配置工程化」。但二者都管调度与仓库配置,同时使用会出现职责重叠(两套计划、两套保留策略)。实践建议二选一:有运维值守、需要恢复操作界面 → Backrest;纯自动化、配置需要纳入 Git 审计 → resticprofile。若已有 resticprofile 配置库又想引入 Backrest,应把调度职责交给其中一方,另一方仅保留仓库参数。
7.4 与 pgBackRest 划清界限
pgBackRest 是 PostgreSQL 生态的专用备份恢复工具(C 语言实现,支持全量/差异/增量备份、并行压缩与流归档),命名中的「BackRest」与 Backrest 无任何关联。混淆风险点有三:搜索关键词重叠、都常驻于备份话题、都支持 S3 类远端。判别方法很简单——看备份对象:数据库实例选 pgBackRest,文件与目录选 Backrest/restic 系。
7.5 社区活跃度与版本节奏
- 版本节奏:v1.13.0(2026-05-04)→ v1.14.0(2026-07-12)→ v1.14.1(2026-07-12),以「功能版本 + 同日补丁版」的方式快速跟进问题修复;
- v1.14.x 主线内容:仪表盘重构、托盘状态、多语言扩充、restic 升级到 v0.19.1、多主机同步修复;v1.14.1 修复了保留策略被静默跳过、仓库 ID 变更后快照文件下载失败等问题(说明 forget/prune 正确性在持续收敛);
- 分发活跃度:发布节奏以 GitHub Releases 为准(检索日最新 v1.14.1),官方同时提供
garethgeorge/backrest的远程分发渠道供自托管部署。
八、参考链接
- 官方仓库:
https://github.com/garethgeorge/backrest - 官方文档站:
https://garethgeorge.github.io/backrest/ - 官方 getting-started:
https://garethgeorge.github.io/backrest/introduction/getting-started - Releases 页:
https://github.com/garethgeorge/backrest/releases - restic 官网:
https://restic.net/ - resticprofile 仓库:
https://github.com/creativeprojects/resticprofile - Vorta 仓库:
https://github.com/borgbase/vorta - pgBackRest 官方站:
https://pgbackrest.org/