Files
healthlog/docs/tasks/items/deploy-rivendell.md
T
avandClaude Opus 5 a53d0f0f2f задачи: мета переехала в блок, поле «Хук» стало «Зачем»
49 файлов, миграция сделана командой tasks.py check --fix — той самой, ради
которой в скрипте оставлена читаемость старой формы. Побочно тот же прогон
проставил тег decomposed целям, у которых есть задачи: это его штатная работа.

check после миграции зелёный, индексы согласованы.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-03 17:31:29 +03:00

2.3 KiB
Raw Blame History

Деплой на rivendell

  • Секция: инфра
  • Зачем: Сервис живёт на рабочей машине — телефон достаёт до него только дома
  • Теги: goal:deploy

Сервис живёт в контейнере на рабочей машине, телефон достаёт до него только дома. Вне дома экспорт копится и уезжает пачкой при возвращении — работает, но это не то, ради чего заводился всегда доступный VPS.

Есть готовый образец: jellybit собирает образ локально и отправляет на сервер через docker save/load, Caddy впереди терминирует TLS. Здесь то же самое.

Шаги:

  • сборка образа локально, доставка на rivendell;
  • Caddy: поддомен приёма и поддомен чтения (плюс MCP на нём же);
  • тома под ./data, конфиг с токенами отдельно, права 0600.

Готово, когда телефон шлёт на публичный адрес из любой сети, а агент читает по тому же домену.

Зависит от задачи про секреты: выезжать наружу с выключенной проверкой токенов нельзя.

Этим же переездом закрывается резервное копирование: на сервере пет-проектов механизм уже готов, своего заводить не нужно (задача bekap-dannyh снята, см. CLOSED.md). Побочное следствие — до деплоя история существует в одном экземпляре на рабочей машине; это и есть цена ожидания.

Том стоит смонтировать так, чтобы серверный бекап забирал его без отдельной настройки, и снимать копию SQLite через VACUUM INTO, а не cp: телефон шлёт непрерывно, и файл под записью копировать нельзя.