Docker项目-通过Syncthing搭建个人同步盘
Syncthing 是一款开源、免费、跨平台的文件同步工具,基于 P2P 技术 实现设备间的文件同步。它的同步方式是去中心化的,不需要一个中央服务器,因此避免了服务器带来的限制。与传统网盘不同,Syncthing在同步过程中不会将数据上传到云服务器,而是直接在你指定的设备之间传输,数据只存储在你信任的本地设备上,确保了隐私和安全。
使用Syncthing可以解决多个与数据管理和访问相关的问题,解决个人数据备份、跨设备访问、数据一致性、便捷性访问等个人生活、工作中存在的问题。
Synching简介
Syncthing 是一个连续的文件同步程序。它同步两台或多台计算机之间的文件。
Syncthing有以下特点:
- 防止数据丢失
- 防范攻击者
- 简单易用
- 多端支持
- 支持docker部署
项目地址:https://github.com/syncthing/syncthing
部署需求
任意两个或者多个linux、windows、macos客户端
同步盘部署
本文采取linux服务器通过docker部署,与windows客户端进行同步。
Linux端部署
linux端采用RockyLinux 8.8
安装docker
yum install-y yum-utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce -y
启动docker
systemctl enabledocker--now
安装docker-compose
curl-L https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
chmod a+x /usr/local/bin/docker-compose
创建项目目录
mkdir-p /data/syncthing
创建docker-compose文件
cd /data/synthing
cat > docker-compose.yaml <<EOF
version:"3"services:syncthing:image: syncthing/syncthing:1.25container_name: syncthing
hostname: my-syncthing
environment:- PUID=1000
- PGID=1000
volumes:- /data/syncthing/data/myfiles:/var/syncthing/myfiles
network_mode: host
restart: unless-stopped
创建docker容器
cd /data/synthing
docker-compose up -d
windows端部署
在https://github.com/syncthing/syncthing/releases/下载windows客户端,直接进行安装。
后面静默运行
默认启动windows客户端,会打开一个cmd运行界面且不能关闭,不方便使用。通过脚本方式隐藏运行:
- 在syncthing程序根目录下创建start_syncthing_hidden.ps1文件,在文件中写入以下内容
$exe_path = "E:\syncthing-windows-amd64\syncthing.exe"Start-Process-FilePath $exe_path-WindowStyle Hidden
- 在syncthing程序根目录下创建start_sycthing.bat文件并写入以下内容
@echo off
PowerShell.exe -NoProfile -Command "& 'E:\syncthing-windows-amd64\start_syncthing_hidden.ps1'"
- 启动程序通过运行start_sycthing.bat程序实现静默运行 最后windows文件内容如下:
windows开机自动运行syncthing
官方文档:https://docs.syncthing.net/users/autostart.html#windows
- 按WIN+R打开运行,并执行taskschd.msc,打开任务计划。
- 点击创建任务
- 创建任务1. 任务名称(例如:syncthing)2. 选择不管用户是否登录都要运行1. 配置触发器可以将同步设置为在用户登录或系统启动时启动。- 在用户登录时运行如果您打算仅在登录到 Windows 用户帐户时才使用同步,请选择此选项。> 1. 在触发器界面选择“新建”> > > > > 1. 选择开始任务:登录时> 2. 选择特定用户> 3. 点击确定> > - 在系统运行时启动希望在Windows启动后立即在后台打开Syncthing,甚至在未登录到您的用户帐户时,也可以选择此选项。如果Syncthing文件夹存储在受BitLocker保护的非系统分区上,请不要使用此方法,因为在用户登录之前无法访问这些文件夹。> 1. 在触发器界面选择“新建”> 2. 选择开始任务:启动时> > 1. 配置操作选项1. 点击操作选项卡2. 点击新建3. 输入程序路径(例如:C:\syncthing\syncthing.exe)4. 添加参数:
--no-console --no-browser
5. 点击确定2. 配置设置选项卡1. 取消如果任务运行时间超过以下时间,停止任务2. 点击确定3. 输入系统用户密码
Syncthing使用
- 添加同步设备
- 点击操作->显示ID,获取当前设备ID
- 在另一台设备,点击右下角的添加远程设备
- 输入开始获取的设备ID,并自定义设备名称点击保存
- 共享文件夹
- 点击添加文件夹
- 在常规选项卡,写入要同步的文件夹路径和名称
- 在共享选项卡,勾选要同步到那些设备
- 点击保持后,会自动扫描和同步
Windows客户端工具:SyncTrazor
SyncTrayzor 是 Windows 上 Syncthing 的一个小托盘实用程序。 它托管和包装 Syncthing,使其行为更像本机 Windows 应用程序,而不像带有 Web 浏览器界面的命令行实用程序。
github地址:https://github.com/canton7/SyncTrayzor
下载地址:https://github.com/canton7/SyncTrayzor/releases
功能包括:
- 具有内置的 Web 浏览器,因此您无需启动外部浏览器。
- (可选)在登录时启动,因此无需将 Syncthing 设置为服务。
- 具有下拉框样式的文件下载/进度窗口 托盘图标指示同步发生的时间。
- 在以下情况下提醒您:
您有文件冲突
您的某个文件夹不同步
文件夹完成同步
设备连接/断开
有一个工具可以帮助您解决文件冲突
- 可以暂停按流量计费的网络上的设备,以停止在手机等设备上传输数据
参考文档:
https://docs.syncthing.net/
https://github.com/canton7/SyncTrayzor
版权归原作者 Alxduo 所有, 如有侵权,请联系我们删除。