Git-публикация и бэкап

История правок, push в приватный репозиторий, doctor

Каталог root — это git-репозиторий. Сервер сам его единственный писатель.

История правок

git:
  enabled: true
  commit_per_write: true    # каждая запись агента — отдельный коммит

Сообщение коммита содержит блокнот, действие и актора (notebook(demo): … [claude-code/laptop]). Историю читают обычным git log внутри root.

Публикация в приватный репозиторий

git:
  remote: git@github.com:you/my-private-notebooks.git

Требования:

  • репозиторий приватный; публичный репозиторий кода (okf-notebooks, mcp-okf-notebooks и URL из git.public_code_repos) сервер отклонит при старте;
  • учётные данные в URL не принимаются; задайте окружение процесса:
    • OKF_NOTEBOOKS_GIT_SSH_KEY — путь к deploy-ключу, или
    • OKF_NOTEBOOKS_GIT_TOKEN — токен для HTTPS.

Отправка идёт в фоне, только вперёд (fast-forward) и «по возможности»: ошибка push не отменяет запись. Ручная отправка накопленного:

uv run okf-notebooks sync

Отклонённый non-fast-forward push означает, что кто-то ещё пишет в этот репозиторий; разберитесь вручную.

Перед бэкапом

uv run okf-notebooks doctor

Коммитит хвосты (например, ручные правки файлов) и проверяет, что рабочее дерево чистое. Бэкапьте root целиком вместе с .git. Индекс .index/ пересоздаваемый, токены .auth/ хранятся как SHA-256. База комментариев (.comments/threads.sqlite) не в git и не пересоздаётся, поэтому она должна попасть в бэкап.

Без git

git.enabled: false отключает коммиты; тогда бэкап — копирование каталога root.