backrest是一款基于restic的可视化加密备份工具,如果还不了解restic的可以参考xiaoz之前写的一篇文章《CentOS 7使用restic备份VPS数据》,backrest在restic基础上增加了WEBUI管理和定时任务、快照预览等功能,极大的简化了restic繁杂的命令行操作。
这篇文章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