原文链接:https://icloudnative.io/posts/anki-sync-server/
Anki 介绍
Anki 是一个辅助记忆软件,其本质是一个卡片排序工具 –即根据使用者对卡片上的自定义内容进行被动测试、自我评判后,其外部算法依据评判后果更改每张卡片下次测试工夫的排序工具。
所谓的卡片,业余说法叫 Flash Card(抽认卡或闪卡),是一小块纸片,分为正反两面,将问题和提醒写在一面,将答案写在另一面。应用办法就是先看侧面的问题与提醒,在脑中回忆答案,而后翻出背面进行对照验证。
闪卡的外围制作准则就是:一个知识点一张卡。因而非常适合用来学习英文,也能够用来记忆历史事件工夫、公式等等。给大家看下我制作的闪卡:
每张卡片只有一个英文单词,与之配套的是该单词的音标、发音、图片、英文解释、例句。所有的版块都是英文,相对不要呈现中文! 卡片的外围是图片和例句,通过图片能够猜到这个单词大略是什么意思,通过例句能够验证本人对单词意思的猜想是否正确,如果还不释怀,能够看下英文解释,这一套流程下来相对能够正确理解单词的意思,齐全不须要中文的干预,这才是学习英文单词最完满的形式。
即便如此,大家在相熟单词的过程中可能还会有一个误区,比方下面这个单词,你在学习的过程中可能会忍不住去想这个单词在中文里到底是什么意思,甚至可能会在心里默念它的中文意思,即便你看了图片和英文解释,你心里可能还会忍不住去想:哦,这是转瞬即逝的意思。倡议大家最好不要这么做,要想做到这一点,记住一句名言:只可意会,不可言传 。你去看这张图片,而后用心去领会: 哦,大略就是这么一种感觉,对对对。你能 get 到这个单词所表白的那种感觉就行了,不要再去思考如何用中文来形容它,那样反而吃力不讨好。
上面言归正传,置信有很多小伙伴和我一样在应用 Anki 来学习英文单词或者其余的常识,然而 Anki 的同步服务器在国外,还是一个集体我的项目,带宽很小,同步速度很慢,如果咱们想在多个客户端之间同步学习进度和新增的知识点,那将十分苦楚。
为了解决这个问题,咱们须要部署一个自定义的同步服务器,而后让客户端去应用这个同步服务器。
Anki 同步服务器部署
自从 2023 年 2 月份,Anki 公布了 PC 端 2.1.57 版本当前,Anki 的 PC 端,安卓端,iOS 端用户都能够自定义同步服务器了,并且不再须要装置插件。从此 Anki 小伙伴再也不必放心 Anki 同步的问题了,困扰 Anki 用户多年的同步问题终于失去彻底解决。
自 PC 端 2.1.57 版本当前,Anki 官网退出了镶嵌在 Anki 客户端的同步服务端和通过 Python 装置的同步服务端。
然而我并不想用官网的这个破玩意,人生苦短,我不必 Python。
我抉择用社区的高大上同步服务端,目前只有 anki-sync-server-rs 这个我的项目反对最新的 Anki 版本,其余的同步服务器我的项目基本上都生效了。这个我的项目是用 Rust 写的,追踪 Anki 官网 同步服务端的进度,它们都是基于 sqlite c 作为数据存储后端。最重要的是:它有 Docker 镜像!
有了镜像,部署起来就简略了,不就是 Docker 一把梭嘛!
不懂 Docker 也没关系,不就是 Sealos 一把梭嘛!楼下的老奶奶都会用 Sealos 一把梭。
你把我上面的步骤教给你家楼下的老奶奶,如果她不会你来找我,我现场给你表演 大便活人!
首先在浏览器地址栏输出网址 https://cloud.sealos.io/ 进入 Sealos 桌面。而后关上「利用治理」:
点击「新建利用」:
顺次输出利用名和镜像名,容器裸露端口是 27701
,并开启外网拜访:
持续向下,开展「高级配置」,点击「编辑环境变量」:
将以下内容粘贴到环境变量输入框中:
ANKISYNCD_USERNAME=<USERNAME>
ANKISYNCD_PASSWORD=<PASSWD>
请将 <USERNAME>
替换为你本人的用户名,将 <PASSWD>
替换为你本人的明码。
点击「新增存储卷」:
挂载门路填入 /app
,而后点击确认:
最初点击右上角的部署利用即可。
部署实现后点击「详情」进入利用详情界面。
这里能够看到实例的运行状态,肯定要等到状态是 running 才算是部署胜利。如果一段时间当前状态还不是 running,能够点击「详情」查看故障起因:
部署胜利后,能够看到利用的运行状况,包含 CPU 占用、内存占用等。点击外网地址即可通过外网域名间接关上同步服务器的 Web 界面。
如果呈现以下的界面,则示意部署胜利:
查看日志的办法也很简略,间接点击实例右侧的「三个点」,而后点击「日志」即可查看日志:
客户端设置
桌面端
桌面客户端(macOS/Windows/Linux)配置办法如下:
-
先关上「首选项」
-
点击「网络」,往下看,能够看到标有
self-hosted sync server(自定义同步服务器)
的方框,在外面填写您的服务端的地址: -
重启 Anki,而后点击「同步」:
-
这时候会弹出一个输入框让你输出用户名和明码,你须要将你之前设置的用户名和明码输出进去:
- 点击确认后,就会开始同步了。
安卓端
安卓端也是间接配置即可,我的 AnkiDroid 版本是 2.15.6
。你能够通过「设置 -> 高级设置 -> 自定义同步服务器」找到配置页面。
再填写用户名和明码:
设置 -> 罕用设置 -> AnkiWeb 账户
这样就算配置实现了,所有的牌组都同步过去了。
官网的版本切实是太老了,如果你想应用更激进的社区版本,能够到这个页面下载最新的 Beta 版:
- https://github.com/ankidroid/Anki-Android/releases
倡议下载 arm64-v8a 版本。
装置实现后,能够通过「设置 -> 同步 -> 自定义同步服务器」找到配置页面:
再填写用户名和明码:
设置 -> 同步 -> AnkiWeb 账户
iOS 端
AnkiMobile 也曾经反对和自建的同步服务器同步了。至多对于版本 Ankimobile 2.0.90(20090.2) 来说,仿佛是可行的,这是一位 iOS 零碎用户在 Anki 论坛报告的。
如果设置实现后发现不能同步能够参考上面的内容再试一次:
If you’re using AnkiMobile and are unable to connect to a server on your local network, please go into the iOS settings, locate Anki near the bottom, and toggle “Allow Anki to access local network” off and then on again.
下面的内容摘自 ANki tutorial
题外话
大家如果对我的卡片模板比拟感兴趣,能够扫码关注公众号:
后盾聊天框发送暗号 anki,即可获取我的卡片 + 模板。