Files
org-roamings/20220319091825-anki.org
2022-06-04 12:57:39 +02:00

109 lines
3.2 KiB
Org Mode

:PROPERTIES:
:ID: 97d8c2d9-a539-4f0b-ad2e-953bf7845e8c
:mtime: 20220327110913
:ctime: 20220319091825
:END:
#+title: Anki
* Introduction
* logiciel libre permettant d'apprendre/réviser des cartes-mémoires grâce à la répétition espacée,
* Anki (暗記) signifie « mémorisation » en japonais.
* S'appuie sur l'algorithme SM2 à la fin des années 1980. L'algorithme a été modifié pour redéfinir l'ordre
d'apparition des cartes par priorité.
* Permet de créer des cartes-mémoires contenant plusieurs champs sur une même face.
* Sauvegarde de son apprentissage en ligne.
* Histogrammes et statistiques d'apprentissage.
* Les cartes et données d'apprentissages stockées au format SQLite.
* L'algorithme de la répétition espacée permet de réviser plus souvent les cartes les moins connues. Fondé sur la
courbe de l'oubli d'Hermann Ebbinghaus.
* Chaque utilisateur peut créer ses paquets de cartes facilement.
* De nombreux add-ons (greffons), modifiant l'aspect d'Anki ou lui ajoutant des fonctions.
* Installer son serveur Anki
** Howto
*** On the server:
#+BEGIN_SRC shell
# Get last version source code.
cd /opt/
ROOT=/opt/anki-sync-server
mkdir ${ROOT}
chown ubuntu ${ROOT}
git clone https://github.com/ankicommunity/anki-sync-server.git
cd ${ROOT}
git checkout tags/v2.3.0
# Prépare virtual environment.
PATH=/home/ubuntu/.local/bin:$PATH
virtualenv .
. bin/activate
make init
# Create first user
./src/ankisyncctl.py adduser <user>
# Edit daemon config file.
CONFIG_PATH=${ROOT}/src/ankisyncd.conf
sed -i 's/port = 27701/port = 27702/' ${CONFIG_PATH}
sed -i 's/host = 0.0.0.0/host = 127.0.0.1/' ${CONFIG_PATH}
# Configure ngingx
cat >/etc/nginx/sites-available/anki-sync-server <<EOF
server {
server_name anki.adrien.run;
# Increase timeouts for XXL collections through slow bandwidth
proxy_read_timeout 3000;
proxy_connect_timeout 3000;
proxy_send_timeout 3000;
# log files
access_log /var/log/nginx/anki-sync-server.access.log;
error_log /var/log/nginx/anki-sync-server.error.log;
# Handle / requests
location / {
proxy_http_version 1.0;
proxy_pass http://127.0.0.1:27702/;
client_max_body_size 222M;
}
}
EOF
ln -s /etc/nginx/sites-available/anki-sync-server /etc/nginx/sites-enabled/
systemctl reload nginx
# Generate certificates signed by certbot
certbot --nginx -d anki.adrien.run
systemctl reload nginx
# Add systemd service
cat>/etc/systemd/system/anki-sync-server.service <<EOF
Description=Anki sync server
After=syslog.target network.target
[Service]
Type=simple
WorkingDirectory=/opt/anki-sync-server
ExecStart=/opt/anki-sync-server/bin/python /opt/anki-sync-server/src/ankisyncd/__main__.py
Restart=on-abort
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable anki-sync-server.service
systemctl start anki-sync-server.service
#+END_SRC
*** For AnkiDroid:
Update configuration (in menu parameters/advanced/Custom sync server):
* URL: https://anki.adrien.run
* Media URL: https://anki.adrien.run/msync
*** For Anki2.1
Cf. https://github.com/ankicommunity/anki-sync-server#anki-21
** Références
* [[https://fr.wikipedia.org/wiki/Anki][Wikipedia]]
* [[https://github.com/ankicommunity/anki-sync-server][Github]]