在树莓派下搭建Anki局域网服务器

Anki是一个基于间隔重复(Spaced Repetition)的字卡软体,同样基于该原理的软件还有商业软件SuperMemo和免费软件Mnemosyne。其名称源自日语的「暗记」(日语发音为:Anki,意思即为「记忆」)。

简介:

Anki对SuperMemo的SM2算法予以改进,使其可以根据记忆卡的优先级、紧急程度进行优化调整。

记忆卡采用HTML语言编写,支持插入图片、音频以及LaTeX公式。

Anki支持多平台客户端,包括PC、安卓、iOS、塞班等,也可以直接登录Ankiweb进行学习。除此之外,注册一个免费账户,便可实现平台之间的同步。

——–摘自维基百科

为什么需要自己搭建服务器

虽然官方提供的服务器也可以免费使用,但是由于官方服务器在国外,速度不理想; 另外我自己的数据也不希望被别人掌控。

服务器端设置:

树莓派上依次执行:

# 回到主目录
cd ~
# 为Amki服务器创建一个目录
mkdir Anki
# 进入目录
cd Anki
# 安装Anki服务器
sudo easy_install Ankiserver
# 拷贝配置文件到Anki目录,另存为production.ini
cp /usr/local/lib/python2.7/dist-packages/AnkiServer-2.0.6-py2.7.egg/examples/example.ini production.ini
# 修改production.ini,
vi production.ini

修改下面两行:
第一行为服务器(树莓派)的IP地址(修改为你的树莓派对应的IP地址,最好将树莓派设置为静态IP地址)
第二行表示服务器允许所有的主机的连接

host = 192.168.1.110
allowed_hosts = 0.0.0.0

添加一个用户,修改jack你的用户名,便于后面Anki客户端登录,然后设置秘密。

ankiserverctl.py adduser jack

测试

ankiserverctl.py debug

若正常按下Ctrl + C结束测试

启动

ankiserverctl.py start

新建脚本文件anki-start.sh

vi anki-start.sh

添加下面的语句

#! /bin/sh
ankiserverctl.py start /home/anki/anki/production.ini

添加可执行权限

chmod +x anki-start.sh

添加开机自动启动:

crontab -e 

添加下面一行:
指定脚本的路径和名称(用pwd命令确定包含anki-start.sh的路径,作对应修改)

~~该部分有误~~
~~#Open Anki server when boot up~~
~~@reboot /home/pi/Anki/anki-start.sh ~~

客户端设置:

Android客户端设置:

找到设置:

修改为你的服务器对应的地址,使用http而不是https

回到主页,刷新。会提示登录AnkiWeb的服务器,虽然你知道你已经搭建了自己的服务器。只需要输入你在配置服务器时的账户和密码即可。

PC客户端设置:

1 . 工具->插件->打开插件文件夹
2 .在插件文件夹中新建一个python 文件mysyncserver.py
添加下面的语句,修改IP为你的服务器IP:

import anki.sync
anki.sync.SYNC_BASE = 'http://192.168.1.110:27701/'
anki.sync.SYNC_MEDIA_BASE = 'http://192.168.1.110:27701/msync/'

3 .更新提示AnkiWeb的账号信息,填写你在配置服务器时的账户密码即可。
“`

参考:
https://zhuanlan.zhihu.com/p/25187159
https://pypi.python.org/pypi/AnkiServer/2.0.6
http://www.weixinnu.com/article/598b83e26f642b000de45d9d

发表评论

电子邮件地址不会被公开。