This release is based on a fork by the GitHub user @jdoe0, which at the time was the only one that worked almost out of the box with recent Anki versions. The fork was quite old and introduced some backwards incompatible changes, most of which haven't been reverted since.
Supported clients
- Anki from 2.0.27 to 2.1.16
- AnkiDroid 2.3 and up
Dependencies
- Python 3.5 or newer
- the
webob
Python module - all dependencies of the
anki
module from anki-bundled or system Anki, except forpyaudio
Major differences from the last release (2.0.6)
- Running the sync app requires at least Python 3 and Anki 2.1. Syncing with Anki 2.0.x is still supported for the time being, but the server needs to use Anki 2.1.
- The REST app is removed from the tree as it's no longer maintained.
- Config is not compatible with the previous release. See
ankisyncd.conf
for an example of the new config format. - Auth and session databases use a slightly different schema (the
user
column is renamed tousername
). If you want to use your existing databases, runutils/migrate_user_tables.py
. - The server module is called
ankisyncd
. The sync app lives inankisyncd/sync_app.py
and can be run by either executing that particular file (python3 ankisyncd/sync_app.py
, requires theankisyncd
module to be in the Python module search path) or the entire module (python3 -m ankisyncd
). The control script is now calledankisyncctl.py
and is only used for managing user accounts.
Other features
ankisyncctl.py
uses config-defined database paths instead of the hardcoded defaults.- Config entries can be overridden by environment variables. See "ENVVAR configuration overrides" in the README file for details.
- An alternative GUI addon for changing the sync server has been made. It can be found in the
addon
directory and is confirmed to work with Anki up to 2.1.17 beta 4. The addon modifies the settings dialog and thus may break easily if newer Anki versions introduce changes to the form.