搭建anki2.1同步服务器

OneOne 2020-03-03 PM 739℃ 2条

前言:

之前一直在使用Anki2.0的同步服务器 AnkiServer,最近在电脑版上提示升级anki ,顺手点击了升级,发现就无法进行同步了,搜索得知,发现新版不支持AnkiServer了。Anki2.1开始使用 Ankisyncd, 于是乎开始折腾新版的anki自定义服务器了

这里我服务器系统用的是 ubuntu18.04,用centos也是类似的操作,就是安装软件命令不一样,问题不大

记得提前防火墙放通端口,如果是用的云服务器,记得在安全组添加端口

需要提前安装好 python3 git pip(2.7版本太老了,还是用新的版本比较好,日后方便)

由于我使用的ubuntu18.04系统默认已经安装了python3 git 所以我只需要装pip即可,命令如下:
sudo apt install python3-pip
1057884-1f5c952c22bc6cb7.png

开始搭建新版anki同步服务器

参考项目地址:https://github.com/tsudoko/anki-sync-server

创建anki文件夹并进入新建的文件夹

mkdir anki && cd anki

克隆项目

git clone https://github.com/tsudoko/anki-sync-server.git

进入 anki-sync-server文件夹

cd anki-sync-server
1057884-afb998ea243aec62.png
接着输入命令

git submodule update --init

cd anki-bundled/

pip3 install -r requirements.txt

此时会提示报错,vi 打开requirements.txt 删除第三行的pyaudio wq保存
重新运行 pip3 install -r requirements.txt 就成功安装了

安装 webob 库

pip install webob

根据需要修改

vi ankisyncctl.py
这里将python改成python3
1057884-75b7eee9bf399ced.png

1057884-d0a9fe2f9428aaee.png

创建用户

./ankisyncctl.py adduser <username>例如 ./ankisyncctl.py adduser anki

后台运行服务

nohup python3 -m ankisyncd

测试是否成功

我这里是本地测试,也可以外网直接,直接用web浏览器访问ip+端口即可
curl -I 127.0.0.1:27701
1057884-ab9bc4a1a5bb039a.png

客户端开始同步以Windows为例

打开anki插件文件夹C:\Users\one\AppData\Roaming\Anki2\addons21 改成自己的计算机用户名即可

新建文件夹 命名为 ankisyncd 新建名为__init__.py的文件

内容如下

import anki.sync, anki.hooks, aqt
addr = "http://192.168.1.1:27701/" # 改成自己服务器地址
anki.sync.SYNC_BASE = "%s" + addr
def resetHostNum():
    aqt.mw.pm.profile['hostNum'] = None
anki.hooks.addHook("profileLoaded", resetHostNum)

其它默认即可
打开Windows版的anki就能看到同步插件了
1057884-7bbffccef9d712ff.png
点击同步就会提示让你输入账号密码,按照提示输入即可
1057884-1ce9f2f19fb1f8ca.png

我用的版本是目前最新的2.1.20版本,界面比之前的2.0.52版本好看了不少。
1057884-e0276086c9f96f0e.png

1057884-a664014fb9fa1c63.png

标签: anki, anki2.1

非特殊说明,本博所有文章均为博主原创。

评论啦~



已有 2 条评论


  1. guo
    guo

    老铁,非常感谢能出教程,教程能不能修改下,一步一步再详细点,按照你 步骤下来,手机端同步显示网络错误,非IT专业,看了你在简书上的教程和博客上的

    回复 2020-03-09 09:35
    1. OneOne
      OneOne 博主

      请问下,你是在那里搭建的 云服务器上还是本地的虚拟机,如果是云服务器的话,需要提前在安全组跟防火墙上放通 27701这个端口的,本地虚拟机的话需要在防火墙上放通27701端口

      回复 2020-03-10 02:02