同步本地目录与Tahoe-LAFS存储网格。
项目描述
Gridsync旨在为Tahoe-LAFS(最小权限文件存储)提供一个跨平台的图形用户界面。它旨在简化Tahoe-LAFS的安装和配置过程,并最终为备份本地文件、在不同设备之间同步目录以及与所有主流桌面平台(GNU/Linux、macOS和Windows)上的其他用户共享文件和文件夹等常见用例提供用户友好的机制。更广泛地说,Gridsync旨在复制其他一些专有“云”备份和同步服务及实用工具(如Dropbox和BitTorrent Sync)的大部分核心功能,但无需牺牲用户的隐私或自由——也不要求使用或了解命令行。因此,Gridsync的开发目标是使安全云存储无障碍地、免费地提供给每个人,不受任何例外,不受额外障碍的影响,也不受操作系统选择的影响。
为什么选择Gridsync?
Tahoe-LAFS已经为安全文件存储提供了许多非常令人向往的特性:除了提供客户端加密外,它还是去中心化、健壮、免费(免费啤酒和言论)、稳定和成熟的,并且是由一群非常有才华的开发者编写的。不幸的是——尽管它有所有这些技术优点——Tahoe-LAFS存在一些持续的用户界面问题,这些问题的学习曲线很陡峭:在Windows和macOS上,其安装需要从源代码手动编译,其配置需要手动编辑文本文件,其主要界面需要大量使用命令行,而且许多基本概念(例如,“dircap”、“shares”、“servers-of-happiness”)对新手用户来说很晦涩,或者需要阅读项目的大量文档。因此,Tahoe-LAFS的用户群体主要是经验丰富的开发者和系统管理员;非技术用户自然无法享受Tahoe-LAFS上述优势。
Gridsync项目旨在通过以下功能克服Tahoe-LAFS的一些可用性问题:
“电池包含”打包——Gridsync捆绑包将包括Tahoe-LAFS和所有必需的依赖项,以提供无摩擦的安装体验;无需安装Python或手动编译。
用于管理主要Tahoe-LAFS功能(例如,启动、停止、配置网关)的图形用户界面——用户永远不需要手动编辑文本文件或接触命令行。
“本地化”外观和感觉——Gridsync使用Qt应用程序框架,在所有目标平台上模拟本地小部件;用户可以期待Gridsync的行为就像任何其他桌面应用程序一样。
自动双向文件同步——Gridsync将监控本地和远程目录,无缝存储或检索新出现的文件版本(使用Tahoe-LAFS的“Magic Folder”功能 [*] )。
状态指示器——用户可以一目了然地了解已连接的存储节点数量、文件夹大小和修改时间,当文件夹正在同步、最近更新的文件等。
桌面集成——Gridsync可以在登录时自动启动,并在某些操作完成时提供桌面通知(可选)。
易于共享——Gridsync使用magic-wormhole库提供人类可发音的“邀请码”,用于加入存储网格和与其他用户共享文件夹。
简单恢复——Gridsync的“恢复密钥”子系统允许在灾难发生时从单个文件轻松恢复连接和文件夹。
Tor支持(实验性)——Gridsync可以通过Tor匿名网络隧道出站连接,隐藏用户网络位置,防止存储服务提供商和彼此之间互相了解。
截图(最新版本;在macOS 10.14上运行,启用了暗黑模式)
截图(先前版本;在运行GNU/Linux和Xfce 4)
安装和运行
稳定版本
可以在项目的GitHub发布页面找到Gridsync“稳定”版本的下载,包括在专用硬件上编译的预构建/二进制分发,适用于所有三个主要桌面平台。强烈建议想要安装这些包的用户在运行之前验证它们的签名,或者可以选择从源代码手动构建/安装Gridsync(见下文)。
在GNU/Linux上安装和运行Gridsync(仅限64位;支持glibc 2.17及以上版本 - 包括Debian 9+、Ubuntu 16.04 LTS+、CentOS 7+和Fedora 28+)
下载Gridsync-Linux.AppImage(并验证其签名)
使AppImage可执行(chmod +x Gridsync-Linux.AppImage)
运行Gridsync-Linux.AppImage
在macOS上安装和运行Gridsync(仅限64位;支持macOS 10.13“High Sierra”及以上版本)
下载Gridsync-macOS.dmg(并验证其签名)
将包含的“Gridsync.app”包拖到任何位置(例如,~/Applications)
双击Gridsync.app
在Windows上安装和运行Gridsync(仅限64位;支持Windows Server 2012R2、Windows 7 SP1、Windows 8.1和Windows 10)
下载Gridsync-Windows-setup.exe(并验证其签名)
运行可执行安装程序并遵循/完成设置向导
安装完成后选择“启动Gridsync”
或者,不希望使用可执行安装程序的Windows用户可以下载并验证Gridsync-Windows.zip,将包含的“Gridsync”文件夹提取到任何位置,并运行Gridsync.exe。
从源代码
由于Tahoe-LAFS尚未移植到python3,并且由于某些GNU/Linux发行版可能包含特别旧的依赖项版本,建议在各自的虚拟环境中使用从PyPI更新的依赖项安装和运行Tahoe-LAFS和Gridsync(理想情况下带有已验证的哈希值)。
以下步骤(从Gridsync源代码树的顶级目录运行)应在大多数基于Debian的GNU/Linux发行版上生效
sudo apt-get install build-essential libffi-dev libssl-dev python python-dev python3 python3-dev virtualenv
virtualenv --python=python2 ./venv2
./venv2/bin/python -m pip install --upgrade setuptools pip
./venv2/bin/python -m pip install tahoe-lafs
virtualenv --python=python3 ./venv3
./venv3/bin/python -m pip install --upgrade setuptools pip
./venv3/bin/python -m pip install -r requirements/requirements-hashes.txt
./venv3/bin/python -m pip install .
PATH=$PATH:./venv2/bin ./venv3/bin/gridsync
其他分发版和操作系统的用户应根据需要修改上述步骤(例如,在macOS上安装Xcode以及python – 或make.bat中列出的依赖项,以Windows为例)。
或者,用户可以使用PyInstaller通过安装所需的依赖项并在源代码树的顶级目录中键入make来生成Gridsync和Tahoe-LAFS的更“便携”的二进制分发版本(适用于在相同平台的其他机器上运行)。这将创建Gridsync及其所有依赖项的独立可执行分发版(包括“冻结”的python解释器和Tahoe-LAFS),将结果文件/安装程序放在dist/子目录中。
然而,请注意,PyInstaller生成的二进制文件通常不具备向下兼容性;例如,在较新的GNU/Linux发行版(即较新版本的glibc)上构建的PyInstaller可执行文件将无法在较旧的发行版上运行。因此,如果您打算为广泛操作系统的版本分发Gridsync二进制文件,建议您在一个尽可能古老的系统上构建应用程序(即能够构建和运行Gridsync,但仍然接收安全更新的系统)。目前,CentOS 7、macOS“Mojave”(10.14)和Windows Server 2012 R2可以说是GNU/Linux、macOS和Windows构建系统分别最合适的候选者(在这些系统上生成的二进制文件将与其他该平台类别中仍受上游支持的任何其他系统向前兼容)。
为了帮助简化向前兼容的二进制文件的测试、构建和分发,以及启用一种粗略的“交叉编译”形式,Gridsync源树中提供了一个自定义的Vagrantfile;安装了Vagrant和VirtualBox的用户或开发者可以通过以下命令自动配置一个完整的Gridsync构建环境,该环境可以生成向前兼容的二进制文件:
make vagrant-build-linux
make vagrant-build-macos
make vagrant-build-windows
这些命令将下载并配置针对目标平台的一个合适的虚拟机(从公共Vagrant Boxes目录中),为它提供所有必需的依赖(如编译器/SDK、Python解释器、X11库等),将Gridsync源代码复制到目标虚拟机中,运行Gridsync测试套件,并编译一个最终适合分发的PyInstaller生成的二进制包(结果可以在客户机虚拟机的~/gridsync/dist目录中找到)。
请注意,为了使Vagrant/VirtualBox正常工作,GNU/Linux的用户可能需要将当前用户名添加到本地的“vboxusers”组,而遇到Windows虚拟机问题的人可能需要安装一些组合的Vagrant插件(如winrm、winrm-fs或winrm-elevated,通过命令vagrant plugin install winrm winrm-fs winrm-elevated)。有关在您的系统上安装、配置或使用Vagrant和/或VirtualBox的进一步帮助,请查阅相应的上游文档和/或帮助论坛。此外,请注意,Gridsync项目无法保证公共Vagrant“Boxes”的安全或安全性;请在依赖第三方软件时采取适当的谨慎措施。
开发构建
未签名的二进制分发(目前跟踪master分支)也可从项目构建机器的“artifacts”目录获取。然而,这些包不应被视为可信或可靠的,仅由开发者出于测试目的提供。请在使用这些文件时采取适当的谨慎措施(理想情况下,在可丢弃的虚拟机中下载并运行它们)。
已知问题和限制
虽然Gridsync最终旨在为Tahoe-LAFS用户提供易于使用的界面,但目前,其界面仅支持Tahoe-LAFS底层功能和使用场景的非常有限子集(即,它提供了简化加入存储网格、创建和共享“魔法文件夹”以及接收有关这些过程的更新和通知的简单方法)。因此,用户不应(目前)期望Gridsync提供完整的备份解决方案或作为其他具有强大共享和协作能力的工具的替代品。
此外,需要注意的是,Tahoe-LAFS的“魔法文件夹”功能本身目前被视为“实验性的”,并存在一些已知问题和限制以及开放的开发工单。
贡献
欢迎任何形式的贡献(例如,建议、批评、错误报告、pull请求)。任何有兴趣帮助Gridsync开发的人都可以通过打开GitHub问题或联系其主要开发者:chris@gridsync.io
许可协议
版权(C)2015-2020 Christopher R. Wood
本程序是免费软件:您可以按照自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它,许可证版本为3,或者(根据您的选择)任何更高版本。
本程序的分发是希望它有用,但没有任何保证;甚至没有关于适销性或特定用途的隐含保证。有关详细信息,请参阅GNU通用公共许可证。
您应该已收到随本程序一起提供的GNU通用公共许可证副本。如果没有,请参阅<https://gnu.ac.cn/licenses/>。
赞助商
本项目持续的开发得以实现,得益于Least Authority和UXFund的慷慨赞助。
项目详情
下载文件
下载适用于您的平台文件。如果您不确定选择哪个,请了解更多关于安装包的信息。