
这篇文章xiaoz将演示使用Docker搭建backrest,并将服务器数据定期备份到自建的RustFS中(S3对象存储)。
backrest/restic特点
* 提供可视化界面管理
* 支持定期备份
* 支持数据加密备份
* 支持增量备份
* 支持数据备份到本地、SFTP、S3、Rclone等
安装backrest
这里xiaoz使用Docker Compose安装,新建一个
docker-compose.yaml文件,内容如下:version: "3.8"
services:
backrest:
image: garethgeorge/backrest:latest
container_name: backrest
hostname: backrest
volumes:
- ./data/data:/data
- ./data/config:/config
- ./data/cache:/cache
- /tmp:/tmp
- ./rclone:/root/.config/rclone
- /data/apps:/apps:ro
environment:
- BACKREST_DATA=/data
- BACKREST_CONFIG=/config/config.json
- XDG_CACHE_HOME=/cache
- TMPDIR=/tmp
- TZ=Asia/Shanghai
ports:
- "9898:9898"
restart: unless-stopped参数含义如下:
*
./data/data:/data:backrest数据存放目录*
./data/config:/config:配置文件存放目录*
- ./data/cache:/cache:缓存目录*
- /tmp:/tmp:临时文件目录*
- ./rclone:/root/.config/rclone:Rclone配置文件目录(restic支持备份到Rclone后端)*
/data/apps:/apps:ro:挂载本地需要备份的目录,xiaoz这里需要备份服务器上的/data/apps目录,映射到容器的/apps,并设置为只读。然后输入
docker-compose up启动。初始化
启动完毕后,输入
http://IP:9898访问backrest WEB界面,首次访问会要求初始化,根据下方截图填写即可。
初始化完毕后,输入刚刚设置的账号、密码进行登录。

使用
**添加存储源**
在开始之前,我们需要先添加一个
Repositorie,简单来说就是添加一个存储源,让backrest知道你要将数据备份到哪里,支持的存储类型有:* 本地
* SFTP
* S3协议的任意对象存储
* Backblaze B2
* Rclone
xiaoz选择将数据备份到自建的RustFS中(S3对象存储),【点击左侧 - Add Repo】,参照下图填写。

* Repo Name:存储源的名称,随便填写,方便识别
* Repository URI:存储源的协议地址,需要根据:https://restic.readthedocs.io/en/latest/030_preparing_a_new_repo.html来填写,xiaoz这里使用的S3协议
* Password:这个密码是加密备份使用的密码,后续解密数据也需要用到此密码。
* 新增2个环境变量,分别是:
AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEY然后底部可以点测试,没问题后再点保存。
**添加备份任务**
【点击左侧 - Plans - Add Plan】,参照下图填写。

最后可以点击【Backup Now】进行立即备份,备份的时候会实时显示进度。

备份完毕后,我们在S3是无法直接查看数据的,因为数据已经被restic加密了,但是backrest后台提供了快照的数据查看。

结语
backrest在restic基础上提供了可视化管理和定时备份功能,大幅简化了操作流程,但其配置仍涉及较多专业概念(如S3协议、环境变量等),对新手可能有一定门槛。推荐运维人员或熟悉备份流程的用户使用,可高效管理加密备份任务。若初次接触,建议先了解restic基础原理再尝试部署。
> backrest开源地址:https://github.com/garethgeorge/backrest