
背景:最近打算将不背单词切换到 anki,主要是感觉不背单词添加生单词比较麻烦。写这篇文章主要是现有介绍的部署方式似乎都有些过时。
2022/04/23 更新,anki-sync-server-rs 已经推送镜像到 docker hub 中,本文对应更新一把。同时增加了在 PC 端设置的方式。
起初我打算使用 https://github.com/ankicommunity/anki-sync-server 的 docker 版本,默认的 docker 版本似乎很旧了,不能兼容最新的 AnkiDroid。我尝试了分支上最新的版本,解决了一些报错也能跑起来。
在我准备正式部署前,发现了另一个社区版本:https://github.com/ankicommunity/anki-sync-server-rs ,本文将介绍如何在 NAS 上部署 anki-sync-server-rs。
正文开始:
首先创建文件夹,后面的内容都放这里,我们把这个目录(anki-sync-server-rs)叫做工作目录吧,执行以下命令:
mkdir anki-sync-server-rs
cd anki-sync-server-rs 然后在工作目录创建 文件,内容如下:
version: "3"
services:
anki-container:
image: ankicommunity/anki-sync-server-rs:latest
container_name: anki-container
working_dir: "/app"
restart: unless-stopped
ports:
- "27701:27701"
volumes:
- ./app:/app 接下来在工作目录创建 app 文件夹:
mkdir app
在 app 文件夹中添加文件 ankisyncd.toml:
[listen]
host = "0.0.0.0"
port = 27701
[paths]
# set root_dir as working dir where server data(collections folder) and database(auth.db...) reside
root_dir = "."
# The following section is optional,
# set it up if your server is compiled with tls support
[encryption]
ssl_enable = false
cert_file = ""
key_file = "" https://github.com/ankicommunity/anki-sync-server-rs/blob/master/ankisyncd.toml
上述配置完成后,执行如下命令创建一个用户:
docker-compose run anki-container ankisyncd user -a user password
目前似乎没有提供修改密码的方式,请谨慎创建。
此时顺利的话,应当可以在 app 目录下看到一些内容,如果没有,可能是什么地方遇到了问题。
创建用户成功后,启动容器就可以开始使用了~
docker-compose up -d
在配置好 https nginx 反向代理后,我们就可以打开 AnkiDroid 使用了!
可以在 F-Droid 下载到 AnkiDroid https://f-droid.org/zh_Hans/packages/com.ichi2.anki/
进入 高级设置 - 自定义同步服务器 设置同步地址,参考设置:
同步地址:https://example.com
媒体文件同步地址:https://example.com/msync
最后用刚创建好的账户登录即可。
我使用的 Arch Linux,这里仅以该系统为例。
安装命令如下:
yay -S anki
pacman -S mpv 由于我们安装的都是比较新的版本,正确的配置方式在 https://github.com/ankicommunity/anki-sync-server 中。
从 Anki 中打开插件目录,创建 ankisyncd 文件夹,然后添加 __init__.py 文件,参考内容如下:
import os
addr = "http://127.0.0.1:27701/" # put your server address here
os.environ["SYNC_ENDPOINT"] = addr + "sync/"
os.environ["SYNC_ENDPOINT_MEDIA"] = addr + "msync/" 重新打开 app 即可使用刚刚部署的同步服务。