Self-Hosted · Linux Server · Lazarus Desktop Client · GPL-3.0

自托管文件库与
桌面目录同步。

Lazync 将个人 NAS 或 Linux 文件服务器与桌面计算机上的一个绑定目录连接起来。 服务端以普通文件保存当前内容并维护历史版本;Lazarus 客户端监听本地目录、管理传输队列, 并在中断后继续同步。当前支持 Windows,后续计划提供 Linux 与 macOS 客户端。 存储位置、访问权限、TLS 与备份策略均由服务器管理员配置和维护。

Lazync 仍处于 Alpha 阶段。基本同步流程已经可用,但可靠的多设备使用所需的若干行为尚未完成。 请勿将其作为重要数据的唯一副本。

自托管

服务端运行在自行管理的 Linux 主机上。账号、目录权限、证书和存储数据均保留在该环境内。

普通文件存储

当前数据以普通文件保存,可以直接读取。Lazync 在旁维护历史版本,不将文件内容封装在专有容器中。

开源

服务端与客户端均以 GPL-3.0 许可发布,其同步、认证与存储行为可以通过源代码审阅。

服务端文件管理与桌面目录同步

服务端维护远端目录结构、历史版本与访问权限;桌面客户端将一个账号绑定到一个本地目录, 根据文件系统通知和远端变更日志执行同步。

自托管服务端

S1

普通文件与版本历史

每个文件的当前版本以普通文件保存在 Lazync 管理的文件库中;早期版本与稳定的文件标识关联,可从 Web 界面查看或恢复。

S2

断点续传

上传使用 8 MiB 分块,并持久保存传输进度;下载采用带条件的字节范围请求,从上一个已校验位置继续。

S3

增量变更日志

客户端从持久游标之后读取增量记录。游标失效时,协议要求先执行完整校验,再恢复增量处理。

S4

原子操作与恢复

更新过程使用临时文件和原子替换;恢复记录与独占写入锁用于在操作中断后维持文件库一致性。

S5

账号与目录级权限

认证模型包括用户账号、可撤销的设备凭据、限时会话与登录限流;目录权限可分别设置为只读或读写。

S6

Web 文件管理器

中英文 Web 界面支持上传、下载、目录管理、历史版本查看与恢复,以及由管理员维护用户和目录权限。

桌面客户端

C1

桌面与托盘运行

当前 Windows 版本提供中英文界面,可驻留系统托盘,并在程序重启后保留绑定状态。客户端基于 Lazarus 开发,待平台集成完成后计划提供 Linux 与 macOS 构建。

C2

文件监听与周期校验

客户端结合递归文件系统通知与周期校验,处理离线期间的修改、遗漏通知和监听溢出;不同操作系统可分别接入各自的原生监听接口。

C3

受控的传输队列

上传和下载使用独立的 FIFO 队列,每个方向同时运行一个任务。传输进度持久保存,SHA-256 校验内容,ETag 保护并发写入,下载文件采用原子安装。

C4

过滤与桌面集成

支持文件、目录、Glob 和扩展名过滤,空目录也参与同步。当前 Windows 版本可选安装资源管理器状态角标,并为托管根目录显示 Lazync 图标;其他系统将采用对应平台的桌面集成方式。

C5

受保护的客户端凭据

设备令牌应保存在操作系统的安全凭据存储中;当前 Windows 版本使用 Credential Manager。客户端不会将账号密码或令牌写入 INI 文件。

C6

明确的证书校验

证书校验使用操作系统信任存储,当前版本接入 Windows 受信任根证书。无法验证的私有证书需人工核对 SHA-256 指纹,并固定到对应的账号绑定。

系统结构

服务端是账号权限、文件标识、历史版本和远端变更日志的权威来源;客户端的文件管理范围仅限于配置的托管目录及其中隐藏的元数据目录。

桌面托管目录

你日常使用的文件夹

Lazync 客户端

安全凭据存储 · 本地绑定状态

Lazync 服务端

账号权限 · 变更日志

专属文件库

普通文件 + 历史版本

当前部署状态

Lazync 尚未达到通过简明、稳定且受支持的流程即可完成安装和运行的阶段。

现阶段

公开仓库目前主要用于代码审阅和开发测试。运行服务端仍需自行构建,并手动准备配置、TLS、 文件系统权限与进程管理。这些细节仍在调整,不作为面向一般用户的安装方案介绍。

发行目标

发行流程正在围绕可直接解包的 Linux 服务端、配套一键安装脚本和可安装的桌面客户端进行整理。 Windows 是当前优先完成的客户端打包目标;Linux 与 macOS 构建将在文件监听、安全凭据存储和 桌面集成分别完成适配与测试后提供。待发行包与升级路径一并验证后,再发布相应部署指南。

Lazync 尽量保持清晰的运行边界:文件存放在自行管理的服务器上, 同步状态可以检查,备份仍由服务器管理员负责。

安全模型

传输安全、服务端存储与管理员责任是相互独立的部分。当前安全边界如下。

  • 客户端与浏览器连接均应使用 HTTPS,包括通过端口映射访问的连接。
  • 服务端当前文件与历史版本均为明文保存;需要静态加密时,应启用 NAS 卷加密。
  • 服务端 INI 按设计保存由 root 管理的管理员密码,必须限制其读取权限。
  • 不要让其他程序直接写入 Lazync 服务端文件库。
  • 备份时应在同一个一致性快照中包含当前文件和 .lazync 元数据目录。
  • 手动信任证书前,应通过独立渠道核对 SHA-256 指纹。

在可信局域网之外开放服务前,请先阅读安全策略

项目状态

项目处于 Alpha 阶段,已形成基本同步能力,但仍有若干影响可靠多设备使用的情形尚未处理完整。

已经实现

  • 本地新增与修改自动上传;远端新增、修改、删除自动下载
  • 上传下载断点续传,SHA-256 校验与原子安装
  • 历史版本保存,Web 端查看与恢复
  • 账号、设备凭据与目录级只读/读写权限

仍待完善

  • 本地删除和本地重命名向服务端传播
  • 自动冲突副本,以及完整的离线多设备冲突处理
  • 桌面界面同时启用多个账号或多个托管目录
  • Linux 与 macOS 客户端构建及其平台专属集成
  • 二进制差量传输、受支持的发行包与自动更新

修改后的文件仍需完整传输,但中断后可以续传。单文件 2 TB、每个绑定 50 万个文件是协议上限, 不是经过验证的部署容量。实际能力取决于 NAS、文件系统、网络、版本保留策略与目录结构,详见 容量与传输限制。 Alpha 测试应使用另有备份的数据;开发进展记录在 GitHub 仓库

Lazync = Lazarus + sync

服务端与客户端均使用 Free Pascal / Lazarus 实现。选择 Lazarus 的重要原因之一, 是为桌面客户端保留面向更多操作系统构建的能力。

源代码

完整源代码以 GPL-3.0 许可公开。目前尚无面向生产环境的发行包;在部署与打包工作继续完善期间, 公开仓库适合用于代码审阅和开发构建。