阿里云主机(VPS主机)上搭建Anki服务器及Anki服务器搭建方案分析

简介: 大家都知道Anki是一款优秀的记忆软件,拥有优秀的记忆算法,高度可定制性,跨几乎所有平台等诸多优点。但由于AnkiWeb的服务器在国外,国内同步的同步速度真的是相当的慢- -,如果只有卡片只有文字内容还能接受,如果记忆库中有许多媒体文件(图片,音频等),同步速度根本没法忍- -...如果手动同步,又太麻烦(好吧其实是我懒- -),还好我们可以通过自己搭建服务器的办法达到较快的同步速度。

背景简介:

大家都知道Anki是一款优秀的记忆软件,拥有优秀的记忆算法,高度可定制性,跨几乎所有平台等诸多优点。但由于AnkiWeb的服务器在国外,国内同步的同步速度真的是相当的慢- -,如果只有卡片只有文字内容还能接受,如果记忆库中有许多媒体文件(图片,音频等),同步速度根本没法忍- -...如果手动同步,又太麻烦(好吧其实是我懒- -),还好我们可以通过自己搭建服务器的办法达到较快的同步速度。

适用人群:

  • 被Anki服务器同步速度慢困扰的
  • 有钱(租用云主机)
  • 有闲(搭建服务器是很麻烦的一件事情,各种踩坑)
  • 愿意折腾(我不会告诉你我折腾了一整天加一个上午才全部搞定,真是扎心ヽ(≧□≦)ノ
  • 需要同步的设备为安卓手机/平板windows PC,IOS不支持修改成自己的同步服务器。


目前自建Anki服务器的教程相当少,只有知乎上的两三篇文章,这也是我写这个教程原因之一。

搭建服务器的可选方案:

  • 在本地搭建(树莓派,笔记本,安卓手机等)/在云端搭建(阿里云,腾讯云等...)
  • 基于windows平台搭建/基于linux

如果要实现24h随时同步,服务器需要24h开机,对个人来说,未免太费电。2333...

因此我想到的最适合个人的解决方案应该是在云端基于linux搭建Anki同步服务器。(也试过用windows,但成功与否似乎看运气- -,又总是出现不明错误,遂放弃- -)

其他方案可参考文末的参考资料。

回到主题,本文简单介绍在阿里云主机(基于Linux)上搭建自己的Anki服务器,不废话了,开始嘿嘿。

云主机的知识在这里详细介绍,可以大致理解为一台运行在云端的完整的个人电脑(说错了不要打我 : P),可选windows也可选linux。阿里和腾讯云都有针对大学生的优惠政策,阿里9.9元/月,腾讯8元/月,配置略有不同,不过搭建一个Anki服务器都绰绰有余,个人觉得这个价格相当划算。(感谢两位马叔叔?)

由于我自己用的搭载在阿里云的Anki服务器已配置完成,稳定使用,故以下以腾讯云为例,并没有多大区别,标题似乎有误(不管了 就这样?)

1.申请阿里云云主机,网址如下:

https://partner.aliyun.com/shop/1586986852753298?spm=a2cbv.aps.0.0.6989561cVAC8gr

image.png

2.在云主机上安装linux(这里选用centos 7版本)

image.png

登录云主机

image.png

登录linux系统,使用前面设置过的用户名与密码

image.png

因为我对vim编辑器使用不熟练,后面的文档修改干脆使用图形化界面下修改,于是先给系统安装图形化安装包。

3.安装桌面组件包

yum -y groupinstall "Server with GUI"      \\ 安装图形化程序组

image.png

ps.安装要等好久- -

启动桌面

startx


image.png

系统会自动重启。

成功进入桌面环境

image.png

4.安装ankiserver

image.png

在命令行中执行:

easy_install AnkiServer

image.png

安装成功测试命令

ankiserverctl.py

image.png

看到如图结果即安装AnkiServer服务成功

5.建立ankiserver配置文件

从文件管理器进入目录

/usr/lib/python2.7/site-packages/AnkiServer-2.0.6-py2.7.egg/examples/

把example.ini 文件复制到 /root下

image.png

重命名为production.ini

image.png

修改production.ini文件内容并保存

host= x.x.x.x  #自己服务器的内网地址也可是局域网IP
allowed_hosts=0.0.0.0 #允许同步的客户端ip地址,使用0.0.0.0表示允许任何ip地址连接

image.png

image.png

6.添加用户

这里添加的用户是将来在Anki客户端登录时使用的用户,使用以下指令添加用户,然后输入对应的密码

ankiserverctl.py adduser username  #usename替换为你的用户名,如xiaoming
ankiserverctl.py lsuser            #列出用户列表,能看到上一步添加的用户即为成功

image.png

7.测试服务器

调试模式:#ankiserverctl.py debug

如果没有报错,则可以正常的运行了。

  • 故障处理

image.png

在测试服务器的时候,我这里出现了这样的报错:

Anki requires a UTF-8 locale

这个错误是由于系统的编码不是UTF-8所致,因此我们只要改变编码即可,可以使用以下的方法改变编码:

export LC_ALL="en_US.UTF-8"
  • 调试模式运行:
ankiserverctl.py debug

image.png

  • 关闭命令行窗口,重新进入,正常运行命令
ankiserverctl.py start

image.png

8.外网测试能否连上端口


填入外网IP及端口27701--状态开放

image.png

成功标志:外网ip,及端口可被检测到开放状态


至此在服务器端的配置已经告一段落了,下面是同步端(需要同步的安卓手机,电脑等,IOS设备不支持自己搭建服务器)的配置


8.同步端的(软件端)配置

8.1 ANKI桌面版设定

开启插件文件夹

image.png

新增一个txt挡案,檔名修改为mysyncserver.py。

image.png

文件内容如下


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

IP自行修改为本机区网IP

保存后,重启anki即可测试同步。

8.2 Android版anki(AnkiDroid)设定

ps.ios目前无法自定义server IP。

image.png

image.png

image.png

image.png

网址要注意ankiserver预设是使用http而不是https

其中桌面版和安卓版中的IP地址都改成云主机的外网IP即可,端口号保持27701不变。

配置完成后,记得及时给云主机续费,云主机就会不辞辛劳的在云端工作,给你提供24小时的同步服务啦~

想在哪里学就在哪里学,想什么时候学就在什么时候学,妈妈再也不用担心我的学习啦~

现在开始享受飞一般的,随时随地的,多平台Anki同步服务吧~



相关文章
|
2天前
|
存储 弹性计算 运维
端到端的ECS可观测性方案,助力云上业务安全稳定
本文介绍了云原生时代保障业务系统可靠性的方法和挑战,重点探讨了阿里云ECS在提升业务稳定性、性能监控及自动化恢复方面的能力。文章分为以下几个部分:首先,阐述了业务可靠性的三个阶段(事前预防、事中处理、事后跟进);其次,分析了云上业务系统面临的困难与挑战,并提出了通过更实时的监测和自动化工具有效规避风险;接着,详细描述了ECS实例稳定性和性能问题的解决方案;然后,介绍了即将发布的ECS Lens产品,它将全面提升云上业务的洞察能力和异常感知能力;最后,通过具体案例展示了如何利用OS自动重启和公网带宽自适应调节等功能确保业务连续性。总结部分强调了ECS致力于增强性能和稳定性的目标。
|
2月前
|
NoSQL 容灾 MongoDB
MongoDB主备副本集方案:两台服务器使用非对称部署的方式实现高可用与容灾备份
在资源受限的情况下,为了实现MongoDB的高可用性,本文探讨了两种在两台服务器上部署MongoDB的方案。方案一是通过主备身份轮换,即一台服务器作为主节点,另一台同时部署备节点和仲裁节点;方案二是利用`priority`设置实现自动主备切换。两者相比,方案二自动化程度更高,适合追求快速故障恢复的场景,而方案一则提供了更多的手动控制选项。文章最后对比了这两种方案与标准三节点副本集的优缺点,指出三节点方案在高可用性和数据一致性方面表现更佳。
|
2月前
|
存储 Unix Linux
服务器数据恢复—DELL EqualLogic PS6100系列存储简介及发生故障后的处理方案
DELL EqualLogic PS6100系列存储采用虚拟ISCSI SAN阵列,支持VMware、Solaris、Linux、Mac、HP-UX、AIX操作系统,提供全套企业级数据保护和管理功能,具有可扩展性和容错功能。
|
3月前
|
机器学习/深度学习 弹性计算 缓存
阿里云服务器经济型e实例与通用算力型u1实例对比分析与选择指南
在阿里云服务器的实例规格中,经济型e实例和通用算力型u1实例是很多个人和普通企业级用户常见的选择,经济型e实例与通用算力型u1实例的主要区别在于性能、应用场景及价格策略。本文将详细对比这两种实例的性能、应用场景及价格策略,以供参考。
|
3月前
|
人工智能 运维 Kubernetes
87cloud案例分析:阿里云国际服务器如何支持在线教育
87cloud案例分析:阿里云国际服务器如何支持在线教育
|
3月前
|
弹性计算 安全 Linux
阿里云国际版ECS云服务器ping不通的原因分析
阿里云国际版ECS云服务器ping不通的原因分析
|
3月前
|
前端开发 Docker 容器
主机host服务器和Docker容器之间的文件互传方法汇总
Docker 成为前端工具,可实现跨设备兼容。本文介绍主机与 Docker 容器/镜像间文件传输的三种方法:1. 构建镜像时使用 `COPY` 或 `ADD` 指令;2. 启动容器时使用 `-v` 挂载卷;3. 运行时使用 `docker cp` 命令。每种方法适用于不同场景,如静态文件打包、开发时文件同步及临时文件传输。注意权限问题、容器停止后的文件传输及性能影响。
652 0
|
4月前
|
存储 运维 监控
服务器高效运维管理方案
智能运维作为保障业务连续性和提升系统性能的关键环节,其重要性日益凸显。服务器作为承载各类应用与数据的核心基础设施,其稳定性、安全性和性能直接关系到企业的业务运行效率和用户体验
154 1
|
3月前
|
域名解析 弹性计算 缓存
阿里云国际云服务器全局流量分析功能详细介绍
阿里云国际云服务器全局流量分析功能详细介绍
|
4月前
|
存储 弹性计算 SDN
企业级 ECS 集群的构建需要综合考虑多个因素,通过不断的比较和对比不同的方案,选择最适合企业自身需求和发展的架构。
【9月更文挑战第5天】在数字化商业环境中,构建企业级ECS(弹性计算服务)集群对提升业务稳定性、扩展性和性能至关重要。本文将比较传统物理服务器与ECS架构,分析云服务商选择(如AWS和阿里云)、实例配置(CPU/内存)、网络架构(SDN vs 传统)及存储方案(本地存储 vs 云存储),帮助企业根据自身需求选出最优方案,实现高效稳定的ECS集群部署。
83 18