Add Anki Sync Server addon (self-hosted flashcard sync)

Installs the official self-hosted anki-sync-server (python -m
anki.syncserver from PyPI's anki package, no Qt/GUI deps) as a
systemd service under $KIOSK_USER, same shape as the Web UI addon:
venv under $ANKI_SYNC_DIR, EnvironmentFile under $ANKI_SYNC_ENV_DIR
(chmod 600 since it holds plaintext sync passwords), multi-user
support via SYNC_USER1/2/... Lets Anki desktop/AnkiDroid clients on
the LAN sync flashcards against this kiosk instead of AnkiWeb.

Added to the existing Addons menu rather than a new top-level
category - Addons is already a flat mix of unrelated self-hosted
services (printing, telephony, media server, remote access), so one
more service fits that pattern instead of fragmenting the menu
structure for a single item.

Wired into complete_uninstall.sh, clone_settings.sh's addon
detection/checklist, and the webui helper script's source list (which
documents itself as mirroring install.sh's sources exactly).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NoqDrsMq2dazAwGU1AodNc
This commit is contained in:
Claude
2026-09-09 13:47:43 +00:00
parent 08b33ef823
commit 75baab8914
7 changed files with 335 additions and 4 deletions
+3 -1
View File
@@ -7,7 +7,7 @@
# (cups_do_uninstall, vnc_do_uninstall, wireguard_do_uninstall,
# tailscale_do_uninstall, netbird_do_uninstall, lms_do_uninstall,
# squeezelite_do_uninstall, asterisk_intercom_do_uninstall,
# webui_do_uninstall, power_schedule_do_remove_all,
# webui_do_uninstall, anki_sync_do_uninstall, power_schedule_do_remove_all,
# emergency_hotspot_do_disable) instead of
# re-implementing removal logic for each addon a second time here - if an
# addon's uninstall logic changes, this picks it up automatically. Only
@@ -59,6 +59,7 @@ action_complete_uninstall() {
echo " • Remote access (VNC, WireGuard, Tailscale, Netbird)"
echo " • Asterisk Intercom (Baresip)"
echo " • Web UI"
echo " • Anki Sync Server"
echo " • LightDM and Openbox"
echo " • All kiosk schedules and services"
echo " • Emergency hotspot configuration"
@@ -89,6 +90,7 @@ action_complete_uninstall() {
squeezelite_do_uninstall
asterisk_intercom_do_uninstall purge
webui_do_uninstall
anki_sync_do_uninstall
echo "[3/12] Removing schedules and emergency hotspot..."
power_schedule_do_remove_all