一切都变得简单了:Anki 2.1.57+ 自带内置服务器,服务器端仅安装pip版运行即可。从此不必docke…
说明
主要参考:官方文档
注意区别于社区提供的 sync-server 如 anki-sync-server 和 anki-sync-server-rs 。目前win版(2.1.57+)已经可以直接填写自定义服务器了,网上2022年的教程多是直接部署或docker部署前面提到的两个,已经过时。写文于20230614,anki-sync-server
已经很久没有更新(停在2.4.0),实测不适用PC的2.1.57+版本,安卓版由于更新不及时仍然能够同步。anki-sync-server-rs
支持到2.1.60,仍然可以选择部署。
这并不是纯手把手教程,有些基础的东西默认你是知道的。比如ssh、git、pip、nginx。
目前最新Anki版本(实测):
- PC 版:2.1.65
- 安卓版:2.15.6
- Pypi版:2.1.65
1. 准备Python3.9
目前anki的pip包要求3.9以上(如有可跳过)。
sudo apt install python3.9
sudo apt install python3.9-venv
python3 --version
2. 准备虚拟环境
cd /存放环境的路径
python3 -m venv 环境名称(如my_anki)
提醒:cd的时候,不要自己建 my_anki
文件夹然后进去,会重复嵌套。
3. 安装Anki
进入到虚拟环境再安装。先更新一下pip
本身,否则可能由于 pip
版本太老导致 whl
标签对不上安装不了较新版本 anki。看清楚安装的是哪个版本的,如果不是2.1.57+,
法一:去 pypi 里面下载 whl ,尝试手动安装;法二:更改或指定源。
cd my_anki
source ./bin/activate
python -m pip install --upgrade pip
pip install anki
4. 尝试启动
SYNC_USER1=user:password SYNC_BASE=~/anki_base SYNC_HOST=127.0.0.1 SYNC_PORT=7888 python3 -m anki.syncserver
太长放不下,没有换行,是同一行。
前面定义的变量相当于配置,SYN_USER1
是设置用户,可以类推 SYN_USER2
添加多个用户。 SYNC_BASE
是数据存放路径,默认是 ~/.syncserver
。SYNC_HOST
和 SYNC_PORT
如果不设置,默认是 0.0.0.0
和 8080
,推荐修改。
注意和 anki-sync-server
不同的是,pip
版并没有提供网页信息,访问 http://ip:port
显示404。如果在后台同时输出404说明已经建立成功了。
至此已经可用了。
5. 域名以及反向代理(可选)
比较好的做法是添加一个 anki 的二级域名(如 anki.example.com
),并申请证书。下面假设二级域名(检查DNS解析)和证书在服务商都设置ok了。
添加nginx
配置,设置443反向代理。
server {
listen 443 ssl;
server_name anki.example.com;
charset utf-8;
ssl_certificate cert/anki.example.com.pem;
ssl_certificate_key cert/anki.example.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
client_max_body_size 100M;
proxy_ssl_server_name on;
proxy_http_version 1.0;
proxy_pass http://127.0.0.1:7888;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
6. 后台运行
第4步测试成功之后,正式就用nohup
命令来后台运行,注意文件路径。"2>&1 &
" 代表错误重定向到标准输出。 日志路径可以自己随意设置。没有换行。
SYNC_USER1=user:password SYNC_BASE=~/anki_base SYNC_HOST=127.0.0.1 SYNC_PORT=7888 nohup python3 -m anki.syncserver >> ~/anki.log 2>&1 &
7. PC设置
2.1.57+版本仅需在 设置-网络-私人同步服务器 中填写 http(s)://域名 or http(s)://ip:port 并重启anki即可。(/sync和/msync默认会找,不用填;也不用添加插件、新建文件之类的。)

账号就填写前面设置的。如果账号密码错误会提示相应信息。


如果后台运行出现问题,虽然PC提示
(说法来源:官方文档提醒 https://docs.ankiweb.net/sync-server.html#self-hosted-sync-server 。检查你的服务器的log也能证实。)“AnkiWeb服务出现错误现,请稍后重试。”
,此时仍然是你的服务器报错的问题,而不是AnkiWeb提供的后台。
8. 安卓设置

高级设置,自定义服务器两个都填一样的(域名 or ip:端口,不带/sync
和/msync
),除非用两个域名/服务器端定义了两个路由指向。另外,新一点的安卓版本强制使用https。
9.IOS设置
你在想什么?
Comments NOTHING