Files

Читалка books → Obsidian (rpi)

С 2026-10-18: заметки и рекапы из читалки books.ruzzy.dev (fr1) раз в 10 минут попадают в vault владельца, папка Книги/ — файл на книгу, главы разделами. Дальше их разносит Obsidian Sync (Mac, iPhone, Boox).

  • Доставка — pull с малины по HTTPS (fr1 до малины за NAT не достучится): GET https://books.ruzzy.dev/api/export?v=<версия> с Bearer-токеном export:obsidian-rpi. Токены с префиксом export: читалка пускает только на /api/export (MCP и остальной API — 401). Ответ без изменений — {"changed": false}, данные не передаются.
  • Токен — /etc/books-sync/token (root:astra 640), в читалке — только хэш (api_token). Отозвать: docker compose exec books python3 books_mcp.py revoke export:obsidian-rpi на fr1; выдать новый — add-token (stdin).
  • /usr/local/bin/books-sync (stdlib), books-sync.timer (каждые 10 мин после окончания прогона, юзер astra), состояние /var/lib/books-sync/state.json (версия, book_id → файл).
  • Односторонняя: всё выше ## Мои мысли перезаписывается из читалки; сам раздел и всё ниже — не трогается (свои мысли писать туда). Правки заметок — в читалке. Книгу переименовали — файл переименовывается вместе с «Моими мыслями».
  • Диалоги с ИИ целиком не выгружаются (владелец 2026-10-18): нужное — кнопкой «В заметки» в окне объяснения, приходит обычной заметкой.
  • Обвязка книги (обложка, копирайт, предисловия, благодарности, оглавление, указатель, «об авторе», колофон…) в файлы не попадает (владелец 2026-10-18), приложения — попадают.
  • Файлы — только для книг, где есть заметки/рекапы. Длинные цитаты обрезаются до 1500 знаков. Удалённая из читалки книга — файл остаётся.
sudo install -m 755 books-sync /usr/local/bin/ && sudo install -d -o astra -g astra -m 750 /var/lib/books-sync
sudo install -m 644 systemd/books-sync.* /etc/systemd/system/ && sudo systemctl daemon-reload
sudo systemctl enable --now books-sync.timer
sudo -u astra books-sync --force      # переписать файлы принудительно