这是一个Rust语言版本的Anki 自建同步服务端,这个服务器追踪Anki官方同步服务端的进度,它们都是基于sqlite c 作为数据存储后端。
也有Anki官方推出的镶嵌在Anki客户端的同步服务端和通过Python安装的同步服务端,看这里
- 下载二进制文件,地址releases ,注意下载与您的计算机平台相符的文件,比如说,对于Windows的用户来说,下载文件名带有
windows_x86_64
的文件。下载后解压缩并进入解压后的文件夹。 - 添加账号(注:下面提到的
username
,password
为您想设置的用户名和密码)。
对于Linux、macOS的用户,运行命令:
./ankisyncd user --add username password
对于WIndows用户,进入解压后的文件夹,打开一个命令行终端,运行命令:
./ankisyncd.exe user --add username password
如果您还想进行其它账号相关的操作,执行帮助命令:
./ankisyncd user --help
- 启动即运行服务端,对于Linux、macOS的用户,运行命令:
./ankisyncd
,对于WIndows用户直接鼠标双击可执行文件ankisyncd.exe
。 - 到这里服务端的配置基本完成了。
具体细节查看文件Docker
当然您也可以同步从源码构建目标平台的二进制文件Install或者从源码构建docker镜像来安装服务端DockerBuild。
因为软件更新,Anki客户端将自定义同步服务端作为内建功能。
- 打开Anki,依次鼠标点击
工具
-->设置
-->网络
- 往下看,可以看到标有
self-hosted sync server(自建同步服务器)
的方框,在里面填写您的服务端的地址 - 重启Anki
- 打开Anki,依次鼠标点击选中
工具
->插件
。 - 在插件页面,点击
获取插件
,填写代码358444159
,点击确认(OK)。 - 下载好后鼠标选中我们的插件
custom sync server redirector
,点击右下角的配置(Config)。 - 不出意外接着会弹出一个窗口,在里面填写您的服务端的地址。
- 重启Anki。
打开AnkiDroid,依次进入 设置(Settings)
-> 高级(Advanced)
-> 自定义同步服务器(Custom sync server)
(对于2.16及以上的版本,依次进入 设置(Settings)
-> 同步(Sync)
-> Custom sync server自定义同步服务器(Custom sync server)
)。
除非设置反向代理来处理加密连接,我们使用HTTP
协议。端口可以是默认的27701
或者可以在配置文件ankisyncd.toml
中设置您中意的端口。
安卓端提供了和Anki endpoint
类似的两个地址来同步收藏数据(Collection)和媒体文件(Media),分别是同步地址(Sync url)
and the 媒体文件同步地址(Media sync url)
,但是在新版2.16中出现了些微的改变。
举个例子,假设我们的服务器IP地址为192.0.0.0
,而且我们使用HTTP协议,27701
作为端口,相应的地址是,
同步地址(Sync url):http://192.0.0.0:27701
媒体文件同步地址(Media sync url): http://192.0.0.0:27701/msync
在2.16及以上版本中,
同步地址(Sync url):http://192.0.0.0:27701/sync/
媒体文件同步地址(Media sync url): http://192.0.0.0:27701/msync/
想要支持https
,查看文件certificate setup (注:2.16版本允许不安全HTTP连接);反向代理如何设置,查看文件reverse proxy setup。
如果您有建议或者批评,请提交问题或者PR,我们洗耳恭听。具体操作查看文件CONTRIBUTING.md。
支持通过换届变量添加账号啦。
键 | 值 |
---|---|
ANKISYNCD_USERNAME | 用户名,如果设置则非空 |
ANKISYNCD_PASSWORD | 密码,如果设置则非空 |
注意,这并不是必选项,这一步可以略过。如果您想改变服务端同步数据存储位置或者改变监听端口,可以修改我们提供的配置文件ankisyncd.toml
,它也在解压缩后的文件夹里面,最后运行如下命令(注:下面的命令适用于linux/和macOS,使用Windows的用户将ankisyncd
替换成ankisyncd.exe
,配置文件ankisyncd.toml
的具体路径根据您计算机配置文件的实际路径而定),
./ankisyncd --config /path/to/ankisyncd.toml
See LICENSE
本项目的建立,与另外两个项目密不可分,它们是 ankicommunity/anki-sync-server ,
ankitects/anki,我们几乎复刻了anki-sync-server
中的媒体同步的实现逻辑;而对于Anki
,我们使用了它的Collection同步API,所以,如果我们不在能够访问到这个API,那么这个项目就停摆了。