Duplicati:将安全加密的备份存储在云中!
前言
在halo论坛看到一位用户在升级的时候不知道什么原因无法重建,博客直接寄了,吓得从不备份的我马上找了个备份服务😇
介绍
项目官网:Duplicati
github地址:duplicati/duplicati: Store securely encrypted backups in the cloud! (github.com)
docker hub地址(非官方镜像):linuxserver/duplicati - Docker Image | Docker Hub
官网有更多安装方式,本文仅使用docker-compose部署以供参考。
将安全加密的备份存储在云存储服务上!
Duplicati 是一个免费的开源备份客户端,可将加密的增量压缩备份安全地存储在云存储服务和远程文件服务器上。
它适用于:本地存储、Amazon S3, IDrive e2, Backblaze (B2), Box, Dropbox(某种网盘), FTP, Google Cloud and Drive(谷歌云和网盘), HubiC, MEGA(一款云存储服务), Microsoft Azure and OneDrive(微软的az和od), Rackspace Cloud Files(一种在线存储), OpenStack Storage , Sia, Storj DCS, SSH (SFTP), WebDAV, Tencent Cloud Object Storage (腾讯云对象存储COS), and more!
几乎兼容全部设备!
特点
Duplicati 使用 AES-256 加密(或 GNU Privacy Guard)在上传之前保护所有数据。
Duplicati 最初上传完整备份,然后存储较小的增量更新,以节省带宽和存储空间。
调度程序会自动使备份保持最新。
集成更新程序会在新版本发布时通知您
加密的备份文件被传输到FTP,Cloudfiles,WebDAV,SSH(SFTP),Amazon S3等目标。
Duplicati 允许备份文件夹、文档类型(如文档或图像)或自定义过滤规则。
Duplicati 可作为具有易于使用的用户界面的应用程序和命令行工具提供。
Duplicati 可以使用 Windows 下的卷快照服务 (VSS) 或 Linux 下的逻辑卷管理器 (LVM) 对打开或锁定的文件进行正确的备份。这允许 Duplicati 在 Outlook 运行时备份 Microsoft Outlook PST 文件。
过滤器、删除规则、传输和带宽选项等
部署
我打算备份到阿里云盘,官方好像是不支持阿里云的,我用clouddrive2将阿里云盘映射到了/mnt/share假装是本地硬盘,也算是能用。
这个项目支持webdav,alist等工具调用各种网盘理论上也是能用的。
可惜不能存到cloudflare r2,这个理论上应该是能存的,我搞不定还是放到阿里云盘吧。
开始部署
如果没有docker可以看这篇文章:Docker安装
才发现一个好玩的东西,在portainer中stacks可以直接网页编辑docker-compose.yaml进行部署,太方便了🥰
点击local → stacks → add stack
,支持网页编辑、上传文件、从GitHub拉取文件及自定义模板。
先找的图中这个项目,体验不大好,就换成了Duplicati。下面是duplicati的具体配置。
---
version: "2.1"
services:
duplicati:
image: linuxserver/duplicati:latest
container_name: duplicati
environment:
- PUID=0
- PGID=0
- TZ=Asia/Shanghai
- CLI_ARGS= # 不知道有什么用,可以不管这个
volumes:
- /mnt/sync/config:/config # 持久化配置文件,随便改前面的路径,冒号后面的路径不要动
- /mnt/hdd/sync:/backups # 可以映射本地文件夹,比如我还有一块硬盘,配合网盘可以双备份。
- /mnt:/source # 替换成你想要备份的文件所在路径,我这个文件夹下有很多服务,包括holo,就全映射进来了
ports:
- 8200:8200 # 冒号前面的端口随便改,后面的端口别动
restart: unless-stopped
按需改成你的配置,使用 ip:端口 打开duplicati。
如果不想用非标端口访问,需要反代的话可以看这篇文章:nginxWebUI使用方法
配置
先改密码,再换中文,可选设置主机名、延时启动。
添加备份
点击 新增备份 → 添加新备份。自定义名称、加密方式及密码,可以一键生成复杂密码。
本项目有很多种存储类型,因为网盘映射到文件夹了,我使用本地文件夹,alist等工具包括cd2也是可以用webdav的,理论上国内大部分网盘都能曲线用以备份。
我试了下s3兼容协议,想白嫖cloudflare r2的10g,测试链接都成功了,就是传不上去,放弃了😇
下一步选择你想要备份的文件夹,我的halo博客在宿主机的/mnt/halo中,映射到duplicati容器中的/source中,
所以源数据应该在/Computer/source/halo,勾选halo文件夹的左侧方框以选中。
我用的自带的h2数据库,所以只用备份halo文件夹,如果你用的其他数据库,请连带备份下数据库,这个很重要!
下一步选择自动备份计划,我放到晚上4点自动备份。
最后一个配置,选择远程卷大小以及备份策略,我选择保留最新3份😌这下怎么玩也死不掉了吧😋
配置好先运行一次,云盘里出现加密备份了,搞定!🥰
恢复一下看看👀
点击恢复文件,选择刚刚的备份,选择全部文件。
可以选择原位复原,也可以换个地方,可以覆盖文件,也可以保存不同版本。
这次放到另一块硬盘里,修改下docker-compose文件使用这个路径下的备份试试重建halo😋
成功重建!没有出现重新初始化,登录正常,搞腚😎