Loading... # 使用 PhotoPrism, Pho, Alist 在自组NAS实现多地加密备份 ![image-20231225042201710](https://i.imgur.com/xjIZJxs.png) ## 概述 前段时间我升级了自己的电脑,升级后剩下的B450m迫击炮配了块5600g,作为家庭服务器使用。由于不是成品NAS,且使用的是Windows + Hyper-v的配置,没有任何成品套件,所有服务都得自己整,不过这也大大增加了玩机的自由度。 家庭nas对于我而言,最主要的功能就是流媒体和备份手机里的文件。前者方案有很多Emby/Plex/Jellyfin。后者的要求就比较高了,我对方案的选择如下 1. 安全性:这个是我优先考虑的,因为我家的照片存着2002年到现在的照片。家庭组raid1是最保险的方法,raid5和raid10不用考虑,重建失败率太高不划算。但是raid1的硬件成本很高,所以我的nas上所有硬盘都是Single,安全性靠**冷盘备份**和**多地备份**。 2. 相册整理和访问:我的需求是每次出游,将**相机**和**手机**的照片全部整合。这个各家nas都有各自的方案,比如群晖的Moments,威联通的QuMagie,但是这都需要各自的系统。那么有没有一款软件可以全平台部署呢,当然有,这就是Photoprism,docker安装,ai可以用cpu跑,反正是nas,跑多久都无所谓。 3. 同步:这个很好理解,就是将照片传到nas上,然后nas同步备份到各个网盘 - 手机同步照片:使用Pho + PhotoPrism的Webdav服务,将手机的相册同步到NAS上 - NAS同步网盘:Alist + Rclone 实现加密同步 这套方案配置完成后,手机里仅需两个应用,Pho和PhotoPrism(PWA安装,实际上装一个Pho就Ok了) ## 设备和软件 那么整理一下用到的软件 - 平台:Windows Server 2022 DataCenter 21H2 - 软件: - Alist: 开源,按需付费(付费版本`RMB¥50`,所有功能免费,付费版本增加挂载和GUI,可以手动实现) - WinSW: 开源,免费。用于创建自定义服务,实现alist开机自启 - Docker Desktop: Windows版本的Docker,基于WSL2 - Pho: 开源按需付费(基础功能够用,付费版本`JP¥1050`) - Rclone Browser: Rclone Gui版本,配置更加方便 - PhotoPrism: 开源按需付费(可以付费捐助) - 宝塔Windows面板: 免费,付费功能用不到。用于配置Nginx和定时任务(可以替换) - 所有上传服务都是通过WebDav,所以你可以自由搭配组合,下面开始配置 ## 软件配置 ### 配置宝塔Windows面板 下载页:https://www.bt.cn/new/download.html 其他系统可以使用平替,但是在Windows上,方便好用的貌似只有宝塔 ![image-20231223194510492](https://i.imgur.com/18sZ5MA.png) ![image-20231223195054929](https://i.imgur.com/FSCblvw.png) 安装过程中会提示不推荐安装在C盘,所以给宝塔单独分区 ![image-20231223195011696](https://i.imgur.com/tApWjI4.png) 安装完成后根据提示访问地址即可 ![image-20231223195205670](https://i.imgur.com/pdtOcgu.png) ### 配置Docker Desktop 安装前需要启用Hyper-V和WSL #### Windows Server版本操作 1. 打开服务器管理器 2. 点击添加角色和功能,下一步 ![img](https://i.imgur.com/a6Icc2e.png) 3. 找到Hyper-V并添加,下一步 ![image-20231223195814558](https://i.imgur.com/NPyLA5v.png) 4. 找到WSL并添加 ![image-20231223195917782](https://i.imgur.com/NS8HnEN.png) #### Windows 非Server版本操作 1. 按下`Win`+`S`,输入功能,打开`启用或关闭Windows功能` ![image-20231223200406828](https://i.imgur.com/eplUTZr.png) 2. 选择 - Hyper-v - Windows虚拟机监控程序平台 - 适用于Linux的Windows子系统 - 虚拟机平台 ![image-20231223200542906](https://i.imgur.com/KbhpcKA.png) #### 配置WSL2 到这一步,wsl已经启用,我们打开终端进行测试 ```shell wsl ``` ![image-20231224020925231](https://i.imgur.com/alAnn3J.png) 我们需要把wsl切换到wsl2 1. 下载wsl2[内核更新包](https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi)并进行安装 ![image-20231224021258050](https://i.imgur.com/77B4QIV.png) 2. 切换版本 ```shell wsl --set-default-version 2 ``` ![image-20231224021356907](https://i.imgur.com/dEnqF5J.png) 3. 更新 ```shell wsl --update ``` ![image-20231224021432046](https://i.imgur.com/oRRsWEZ.png) 到这里wsl2配置完成 #### Docker Desktop 访问官网并下载:https://www.docker.com/products/docker-desktop/ ![image-20231224021731943](https://i.imgur.com/PJbmT0O.png) 打开安装包进行安装,这里勾选使用wsl2而不是hyper-v(老版本是用的hyper-v,体验非常差),等待安装完即可 ![image-20231224022023625](https://i.imgur.com/Hxc6Vhq.png) 安装完成启动,正常启动我们可以看到如下的wsl发行版 ![image-20231224022350089](https://i.imgur.com/XoIcbiE.png) 启动后根据要求登录,看到界面就说明安装完成了 ![image-20231224022605682](https://i.imgur.com/H4CEX74.png) > 注意: > > 1. wsl一定要安装wsl2内核,并切换到wsl2 > 2. docker desktop可能会卡启动阶段,一般都是wsl的问题,但是docker desktop给的信息非常笼统,只有一个`Unexpected WSL error`。我个人建议使用`wsl --install Ubuntu-22.04`进行排查,在启动ubuntu的过程中会有详细的报错代码,把报错代码丢到Google上搜一下就有结果了,当Ubuntu子系统能正常启动时,再去启动docker即可 ### 配置PhotoPrism ![image-20231225041740423](https://i.imgur.com/gda0yeM.png) [PhotoPrism官方安装文档](https://docs.photoprism.app/getting-started/) 官方文档有这么段描述 > #### Databases[¶](https://docs.photoprism.app/getting-started/#databases) > > PhotoPrism is compatible with [SQLite 3](https://www.sqlite.org/) and [MariaDB 10.5.12+](https://mariadb.org/).[2](https://docs.photoprism.app/getting-started/#fn:2) Note that [SQLite is generally not a good choice](https://docs.photoprism.app/getting-started/troubleshooting/sqlite/) for users who require scalability and high performance, and that support for [MySQL 8 has been discontinued](https://github.com/photoprism/photoprism/issues/1764) due to low demand and missing features.[3](https://docs.photoprism.app/getting-started/#fn:3) SQLite并不适用于生产环境,在数据库大了后会有性能问题,所以我们使用Mariadb数据库(由于缺乏新功能所以官方弃用了MySQL8) #### 数据库 你可以选择直接前往[Mariadb官网](https://mariadb.org/)下载,但是我为了方便全部使用Docker,考虑到其他服务也需要使用到数据库,我们单独起一个Mariadb + myphpadmin 若你只想给PhotoPrism独立的数据库,那么你可以跳过这一小节,并使用PhotoPrism[官方的配置文件](https://dl.photoprism.app/docker/windows/docker-compose.yml) 我个人的习惯是使用docker-compose,每个服务一个文件夹 ![image-20231224023635661](https://i.imgur.com/rPr1osE.png) 创建文件夹`mariadb`,并创建`docker-compose.yml`文件 ![image-20231224023825992](https://i.imgur.com/na7Voty.png) ```yaml version: '3' # 创建Mariadb使用的卷 volumes: mariadb: driver: local # 创建网络,这里注意命名,docker创建的网络命名为 <文件夹名>_jammy_net # 我这里就是 mariadb_jammy_net networks: jammy_net: driver: bridge services: mariadb: container_name: mariadb # 容器名称 image: mariadb:lts-jammy # 这里使用lts-jammy,注意photoprism需要MariaDB 10.5.12+ restart: always environment: MYSQL_ROOT_PASSWORD: password # 数据库root密码 MYSQL_USER: username # 创建的用户名 MYSQL_PASSWORD: password # 创建的用户密码 expose: - "3309" # 暴露端口,这里因为我还有其他数据库,3306占用了,所以使用3309,你挑一个自己喜欢的端口就行,但是下面映射端口也需要改 ports: - "3309:3306" # 端口映射,方便我们使用外部工具管理里 volumes: - mariadb:/var/lib/mysql # 映射数据库文件 networks: - jammy_net # 指定容器使用的网络 phpmyadmin: container_name: phpmyadmin # 方便我们管理数据库 image: phpmyadmin restart: always expose: - "13005" # 暴露的端口,随便选 ports: - "13005:80" # 端口映射 environment: - PMA_HOST=mariadb # 指定数据库 - PMA_PORT=3306 # 指定数据库端口,因为走的容器间通信,所以这里不是映射后的端口 networks: - jammy_net # 指定网络 ``` 根据自己需求配置后,启动容器 ![image-20231224025013900](https://i.imgur.com/mwZgbNz.png) 常用命令 ```shell # 后台启动容器 docker-compose up -d # 停止容器 docker-compose stop # 销毁容器 docker-compose down # 启动停止的容器 docker-compose start ``` 接下来我们为PhotoPrism创建数据库,访问刚刚配置的phpmyadmin,http://localhost:13005/,输入用户名密码 ![image-20231224025412530](https://i.imgur.com/hpBgTbi.png) 点击账户 ![image-20231224025517770](https://i.imgur.com/oMcePB3.png) 点击新增用户 ![image-20231224025716473](https://i.imgur.com/EkeCK8v.png) 输入用户名,并**勾选**创建同名数据库,记住这边的密码,等会配置Photoprism需要用到 ![image-20231224025751623](https://i.imgur.com/WraBsBL.png) #### PhotoPrism 终于到主角出场了,下面开始配置,您可以使用[官方的配置文件](https://dl.photoprism.app/docker/windows/docker-compose.yml),并根据[官方指南](https://docs.photoprism.app/getting-started/docker-compose/#__tabbed_1_5)进行配置,这里我就不按官方的来了 创建如下的文件夹结构 ![image-20231224030302018](https://i.imgur.com/P54xv45.png) 配置文件,这些功能默认即可,若需要修改,软件启动后也是能修改的 ```yaml version: '3.8' # 重要: 请使用刚刚配置的网络名称 networks: mariadb_jammy_net: external: true # 外部网络 # Example Docker Compose config file for PhotoPrism (Windows / AMD64) services: photoprism: image: photoprism/photoprism:latest container_name: photoprism # restart: unless-stopped 在配置测试正确之前请勿使用 stop_grace_period: 10s security_opt: - seccomp:unconfined - apparmor:unconfined ports: - "13004:2342" # HTTP port (host:container) environment: PHOTOPRISM_ADMIN_USER: "zerolouis" # 管理员用户名 PHOTOPRISM_ADMIN_PASSWORD: "password" # 管理员初始密码 (8-72 字符) PHOTOPRISM_AUTH_MODE: "password" # 认证方式 (public, password) PHOTOPRISM_SITE_URL: "http://localhost:2342/" # 服务地址,这里不修改公网解析di'zhi "http(s)://domain.name(:port)/(path)" PHOTOPRISM_DISABLE_TLS: "false" # 禁用 HTTPS/TLS,即使站点 URL 以 https:// 开头且证书可用 PHOTOPRISM_DEFAULT_TLS: "true" # 如果没有其他证书可用,则默认为自签名 HTTPS/TLS 证书 PHOTOPRISM_ORIGINALS_LIMIT: 5000 # 文件大小限制,单位为MB,若需要传输大文件请适当增加 PHOTOPRISM_HTTP_COMPRESSION: "gzip" # 改善传输速度和带宽利用率的方式 (none or gzip) PHOTOPRISM_DEBUG: "false" # 是否在调试模式下运行,显示其他日志消息 PHOTOPRISM_READONLY: "false" # 禁止修改原件文件夹;禁用导入、上传和删除 PHOTOPRISM_EXPERIMENTAL: "false" # 启用实验特性 PHOTOPRISM_DISABLE_CHOWN: "false" # 禁止在启动时通过 chmod 和 chown 更新存储权限 PHOTOPRISM_DISABLE_WEBDAV: "false" # 禁用内置 WebDAV 服务器 PHOTOPRISM_DISABLE_SETTINGS: "false" # 禁用设置 UI 和 API PHOTOPRISM_DISABLE_TENSORFLOW: "false" # 禁用依赖TensorFlow的功能 PHOTOPRISM_DISABLE_FACES: "false" # 禁用人脸检测和识别(需要 TensorFlow) PHOTOPRISM_DISABLE_CLASSIFICATION: "false" # 禁用图像分类(需要 TensorFlow) PHOTOPRISM_DISABLE_VECTORS: "false" # 禁用矢量图形支持 PHOTOPRISM_DISABLE_RAW: "false" # 禁止RAW图像的引索和转换 PHOTOPRISM_RAW_PRESETS: "false" # 允许在转换 RAW 图像时应用用户预设(降低性能) PHOTOPRISM_JPEG_QUALITY: 90 # 较高的值会增加 JPEG 图像和缩略图的质量和文件大小 (25-100) PHOTOPRISM_DETECT_NSFW: "false" # 自动将可能令人反感的私密照片标记为私密照片(需要 TensorFlow) PHOTOPRISM_UPLOAD_NSFW: "true" # 允许上传可能令人反感的内容(如果没有 TensorFlow,则无效) PHOTOPRISM_DATABASE_DRIVER: "mysql" # 数据库驱动 PHOTOPRISM_DATABASE_SERVER: "mariadb:3306" # 数据库地址,在同一个网络就可以使用容器名称访问了,注意这里是3306,而不是映射后的地址 PHOTOPRISM_DATABASE_NAME: "photoprism" # 数据库名称 PHOTOPRISM_DATABASE_USER: "photoprism" # 数据用户 PHOTOPRISM_DATABASE_PASSWORD: "password" # 刚刚创建的数据库的密码 PHOTOPRISM_SITE_CAPTION: "PHOTOPRISM AI驱动的相册应用" # 网站标题 PHOTOPRISM_SITE_DESCRIPTION: "Zerolouis的家庭相册" # 网站meta信息 PHOTOPRISM_SITE_AUTHOR: "Zerolouis" # 网站meta信息 ## 视频转码设置 (https://docs.photoprism.app/getting-started/advanced/transcoding/): # PHOTOPRISM_FFMPEG_ENCODER: "software" # H.264/AVC encoder (software, intel, nvidia, apple, raspberry, or vaapi) # PHOTOPRISM_FFMPEG_SIZE: "1920" # video size limit in pixels (720-7680) (default: 3840) # PHOTOPRISM_FFMPEG_BITRATE: "32" # video bitrate limit in Mbit/s (default: 50) working_dir: "/photoprism" # 请勿修改 ## 存储文件: 使用 "/" 而不是 "\" 作为分隔符, "~" 是一个 C:/user/{username} 的快捷方式, "." 表示当前目录 volumes: # 根据你自己的相册位置配置,将文件夹映射到/photoprism/originals/<文件夹> # "C:/user/username/folder:/photoprism/folder" # 一个例子 - "F:/Picture:/photoprism/originals/share1" # 我这里就影射了两个文件夹 - "E:/Pictures:/photoprism/originals/share2" - "./storage:/photoprism/storage" # PhotoPrism的数据,确保文件夹可写入 networks: - mariadb_jammy_net # 刚刚配置的网络,确保和数据库在同一个网络中 ``` 接下来我们启动 ![image-20231224033005578](https://i.imgur.com/R4p4fmc.png) 访问我们映射的端口,http://localhost:13004/,正常情况下应该就可以看到了photoprism的登录界面了 ![image-20231224033048114](https://i.imgur.com/bbqbURl.png) 进来以后找到设置,就可以切换成中文了 ![image-20231224033434771](https://i.imgur.com/YX2kY09.png) 在资料库中,点击引索,PhotoPrism就会开始引索你的相册了 ![image-20231224033526890](https://i.imgur.com/um9J8GM.png) > 注意: > > 1. 这个过程十分耗时,因为所有ai都是用CPU在跑,我的上一台J3455的Nas,跑两万多张图片用了近半周的时间 > 2. PhotoPrism会监视文件夹变化,所以不需要每次传照片都去手动引索,一切都是自动的 #### 反向代理 这部分以宝塔为例,你也可以使用[nginxproxymanager](https://nginxproxymanager.com/)之类的工具或直接手写配置文件,我使用宝塔是因为他真的挺方便的。 点击添加站点后,输入你的域名,由于家宽封锁常用端口,所以这里以非标准端口为例子 ![image-20231224035607637](https://i.imgur.com/zc945f5.png) 创建完成后,进入设置-反向代理-添加反向代理 ![image-20231224035750458](https://i.imgur.com/VfbtMTz.png) 根据你的需求添加SSL证书,根据需要修改为非标准端口,并在**网站配置文件**中添加如下内容 ```nginx # 如果没有Upgrade头,则$connection_upgrade为close,否则为upgrade map $http_upgrade $connection_upgrade { default upgrade; '' close; } ``` ![image-20231224040236700](https://i.imgur.com/5llrEKo.png) 在**反向代理的配置文件**中添加如下内容 ```nginx # websocket代理 proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; # 调整上传大小 client_max_body_size 20000m; ``` 这样你就可以使用域名访问PhotoPrism了,其他服务也是这样操作 ### 配置alist ![image-20231225022451427](https://i.imgur.com/iXOoIh7.png) Alist官方文档:https://alist.nn.ci/zh/ 下载页:https://github.com/alist-org/alist/releases 找到windows版本并下载 ![image-20231225022728390](https://i.imgur.com/DvCIAiu.png) ![image-20231225022805282](https://i.imgur.com/f2EWj1U.png) 将下载下来的`alist.exe`放入一个空文件夹,`shift+鼠标右键`打开powershell ```shell .\alist.exe server ``` 等待配置文件的生成,然后`ctrl+c`终止,接下来配置密码 ```shell # 获得管理员信息 以下两个不同版本,新版本也有随机生成和手动设置 # 低于v3.25.0版本 .\alist.exe admin # 高于v3.25.0版本 # 随机生成一个密码 .\alist.exe admin random # 手动设置一个密码 `NEW_PASSWORD`是指你需要设置的密码 .\alist.exe admin set NEW_PASSWORD # 配置完成后启动 .\alist.exe server ``` 启动后我们就能看到如下界面,输入用户名: `admin`,和你刚刚配置的密码`NEW_PASSWORD` ![image-20231225023556760](https://i.imgur.com/LPqbn2O.png) 恭喜你,Alist搭建就完成了,进入后点击下方的管理 ![image-20231225023802945](https://i.imgur.com/MFqhG4v.png) 根据文档配置你需要的网盘,[官方文档](https://alist.nn.ci/zh/guide/)写的很清楚了,这边就不赘述了(选夸克是因为88vip)。这边说下加密盘的配置 ![image-20231225024016667](https://i.imgur.com/3f8saTF.png) #### 加密配置 官方文档在这:https://alist.nn.ci/zh/guide/drivers/Crypt.html 我个人的需求是仅将我上传的照片和视频加密,文件夹不加密,这样我就根据目录结构知道这个文件是什么,且不让网盘去扫我的图片和视频 主要更改的地方 ![image-20231225024640932](https://i.imgur.com/7k15Lcy.png) ![image-20231225024911215](https://i.imgur.com/RC4oSSN.png) 这样设置我们就可以在挂载的网盘中加密存储了 我们在新创建的路径中上传文件试一下 ![加密文件](https://i.imgur.com/0jPdUpY.png) ![原网盘](https://i.imgur.com/KDODjHJ.png) 这样配置就成功了 #### 开机自启动 在桌面版alist中集成了原生的开机自启,阔绰的朋友可以购买,图个方便。开发者也给了自启动[配置指南](https://alist.nn.ci/zh/guide/install/manual.html),可以参考。 本质上都是把软件配置成Windows服务,实现自启动,我这里习惯使用WinSW了,下面进行配置 1. 下载WinSW:https://github.com/winsw/winsw/releases ![image-20231225025844711](https://i.imgur.com/7hUrLto.png) 2. 将下载的`WinSW-x64.exe`复制到alist的目录下,重命名成任意名字,这里使用`alist-sevice.exe` ![三样东西](https://i.imgur.com/QFEtnGd.png) 3. 创建**同名**配置文件`alist-service.xml`,添加如下内容 ```xml <service> <id>alist-service</id> <name>alist-service</name> <description>alist服务</description> <executable>./alist.exe</executable> <arguments>server</arguments> </service> ``` 4. 打开终端,将alist注册成Windows服务并启动 ```shell # 安装服务 .\alist-service.exe install # 启动服务 .\alist-service.exe start ``` 5. 打开服务页面我们就能看到我们创建的服务了,点击属性设置成自动即可 ![image-20231225030753660](https://i.imgur.com/rzPlieC.png) 6. 启动后会在目录下生成几个文件 ![image-20231225031000122](https://i.imgur.com/5UhmagO.png) 下面贴一下WinSW的常用命令 > Your renamed *WinSW.exe* binary also accepts the following commands: > > > | Command | Description | > | -------------------------------------------------------------------------------------------- | ------------------ | > | [install](https://github.com/winsw/winsw/blob/v3/docs/cli-commands.md#install-command) | 安装服务 | > | [uninstall](https://github.com/winsw/winsw/blob/v3/docs/cli-commands.md#uninstall-command) | 卸载服务 | > | [start](https://github.com/winsw/winsw/blob/v3/docs/cli-commands.md#start-command) | 启动服务 | > | [stop](https://github.com/winsw/winsw/blob/v3/docs/cli-commands.md#stop-command) | 停止服务 | > | [restart](https://github.com/winsw/winsw/blob/v3/docs/cli-commands.md#restart-command) | 重启服务 | > | [status](https://github.com/winsw/winsw/blob/v3/docs/cli-commands.md#status-command) | 查看服务状态 | > | [refresh](https://github.com/winsw/winsw/blob/v3/docs/cli-commands.md#refresh-command) | 刷新配置 | > | [customize](https://github.com/winsw/winsw/blob/v3/docs/cli-commands.md#customize-command) | 自定义可执行文件 | ## 同步配置 注意,为保证数据安全,切记使用**单向同步**,双向同步可能会导致意外发生 ### 手机->PhotoPrism相册同步 使用到的软件:https://github.com/fregie/pho 网站:https://pho.tools/ ![image-20231224034723896](https://i.imgur.com/QycxuCD.png) 非常好用的一个相册同步软件,我们可以链接到PhotoPrism的Webdav服务进行同步。高级设置需要购买,但是免费版本已经够用了,可以根据自己的需要购买软件。 打开软件,选择一个相册,作为需要同步的相册,这里我选择相机 ![Stitch_20231224_040845](https://i.imgur.com/EW2dKPX.jpg) 然后进行webdav的配置,还记得我们刚刚映射的目录吗,我在我映射的文件夹内创建了一个手机专用的文件夹 ```plain volumes: - "F:/Picture:/photoprism/originals/share1" - "E:/Pictures:/photoprism/originals/share2" ``` ![image-20231224041521294](https://i.imgur.com/SBRhTf9.png) PhotoPrism的WebDav访问路径和网站同名,例如我们刚刚反向代理后的网址是: `https://test.website.com:10080` 那么这里的**URL**就是这个网址 **用户名**和**密码**就是我们设置的PhotoPrism的密码 存储根目录,根据你自己创建的文件夹填写,例如我刚刚创建的文件夹映射目录如下 `F:/Picture/Xiaomi13U:/photoprism/originals/share1/Xiaomi13U` 配置完成后返回,点击右下角的同步就可以把照片传入硬盘中了 另外,软件还支持SMB/NFS/百度网盘,若你不需要PhotoPrism,直接使用Pho将文件同步到硬盘中即可 ![Stitch_20231224_040916](https://i.imgur.com/LXb1kjM.png) ### NAS->网盘加密同步 #### 安装Rclone和Rclone Browser 下载: - Rclone下载页:https://rclone.org/downloads/ - Rclone Browser下载页:https://github.com/kapitainsky/RcloneBrowser/releases Rclone下载后是一个压缩文件,解压备用,并在文件夹下创建一个文件`rclone.conf` Rclone Browser是一个安装包,根据指引安装即可 打开软件,填写以下两项,然后点击OK ![image-20231225032645688](https://i.imgur.com/CQcqUtI.png) 点击Config,这时候会跳出终端,我们进行alist加密盘的挂载 ![image-20231225032813594](https://i.imgur.com/XVWrFZy.png) 1. 输入n,添加新的远程 ![image-20231225032852059](https://i.imgur.com/0vdO1tA.png) 2. 为远程起名 ![image-20231225033532082](https://i.imgur.com/hCp711d.png) 3. 输入52,选择webdav ![image-20231225033003725](https://i.imgur.com/rn6tWBT.png) 4. 输入alist的地址( `http[s]://domain:port/dav/`,这里可以填写反向代理后的地址) 根目录:`http://localhost:5244/dav/` 这里我输入了根地址,也就是挂载了整个alist,你可以根据需要来挂载 ![image-20231225034838763](https://i.imgur.com/b4lQwev.png) 5. 选择webdav类型,输入7 ![image-20231225033439894](https://i.imgur.com/mE4eze2.png) 6. 下面输入alist用户名,y,密码 ![image-20231225033707146](https://i.imgur.com/2vf4hT2.png) 7. token直接空着,回车,不需要高级配置 ![image-20231225033746711](https://i.imgur.com/pBTAX4q.png) 8. 按y确认保存 ![image-20231225033819469](https://i.imgur.com/dEtfRb7.png) 9. 配置完成后就能看到,双击打开, ![image-20231225033849112](https://i.imgur.com/Va95KUZ.png) ![image-20231225033901507](https://i.imgur.com/QFv00Zj.png) ![image-20231225035010146](https://i.imgur.com/mrTeZes.png) 你也可以使用rclone将alist挂载为硬盘使用 #### 配置同步 1. 选择目标文件,点击上方的`Upload`按钮 ![image-20231225035146956](https://i.imgur.com/Z2IBgCk.png) 2. 创建上传任务,点击`run`直接运行,这里建议使用`save task`保存当前任务 ![image-20231225035554974](https://i.imgur.com/9grYlor.png) 3. 保存任务后,在Task一栏中找到任务,点击`Run`执行任务 ![image-20231225035835086](https://i.imgur.com/ewYJtOu.png) 4. 这样我们就能看到任务详情了,点击右上角的按钮,复制当前任务的命令 ![image-20231225035959717](https://i.imgur.com/QBWzEOm.png) 可以看到我们刚刚执行的任务如下 ```shell D:\Software\rclone-v1.65.0-windows-amd64\rclone.exe --config D:/Software/rclone-v1.65.0-windows-amd64/rclone.conf copy --ignore-existing --verbose --transfers 4 --checkers 8 --contimeout 60s --timeout 300s --retries 3 --low-level-retries 10 --stats 1s --stats-file-name-length 0 --fast-list D:\Book\[SPY×FAMILY_color_CN][Vol_01] alist:Picture(加密)/test/[SPY×FAMILY_color_CN][Vol_01] ``` #### 定时执行 这一步就非常简单了,使用宝塔的计划任务 ![image-20231225040657861](https://i.imgur.com/S8fCOkU.png) ## 总结 那么整个流程到这里就结束了,多盘同步只需要在alist挂载多个硬盘,并定时执行多个rclone任务,就可以保证数据的多地备份了,个人认为已经是一个极低成本的多地备份方案,对于我们这些家庭用户已经完全够用了。 所有服务通过webdav服务通信,大大增加了灵活性,你可以根据需要去掉中间任意一个环节,例如: - 如果你不需要整理相册,那么去掉photoprism,直接将pho的上传地址改为alist地址,后面继续上面的备份操作 - 如果你只需要备份本地文件,那么只需要保留rclone和alist,继续上面的备份操作 最后修改:2023 年 12 月 25 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏