- каждая запись каталога задач получила тип вместо тега kind: и префикса заголовка; секция роадмапа «Разработка» стала «Сопровождением», порядок секций канонический - поправлены протухшие факты: нереализованные маршруты Read API, MCP и `healthlog import`, словарь слоёв в инварианте, семантика гейта по покрытию диффа, периметр перестал дублировать security.md - замер слияния переведён с находки 49 на находку 54, заполнены Purpose спек storage и parsing
2.5 KiB
✨ Выложить сервис на rivendell
- Тип: feature
- Категория: Инфра
- Зачем: Сервис живёт на рабочей машине — телефон достаёт до него только дома
- Теги: goal:deploy
Сервис живёт в контейнере на рабочей машине, телефон достаёт до него только дома. Вне дома экспорт копится и уезжает пачкой при возвращении — работает, но это не то, ради чего заводился всегда доступный VPS.
Есть готовый образец: jellybit собирает образ локально и отправляет на сервер
через docker save/load, Caddy впереди терминирует TLS. Здесь то же самое.
Шаги:
- сборка образа локально, доставка на rivendell;
- Caddy: поддомен приёма и поддомен чтения (плюс MCP на нём же);
- тома под
./data, конфиг с токенами отдельно, права0600.
Готово, когда телефон шлёт на публичный адрес из любой сети, а агент читает по тому же домену.
Зависит от задачи про секреты: выезжать наружу с выключенной проверкой токенов нельзя.
Этим же переездом закрывается резервное копирование: на сервере пет-проектов
механизм уже готов, своего заводить не нужно (задача bekap-dannyh снята,
см. CLOSED.md). Побочное следствие — до деплоя история существует в одном
экземпляре на рабочей машине; это и есть цена ожидания.
Том стоит смонтировать так, чтобы серверный бекап забирал его без отдельной
настройки, и снимать копию SQLite через VACUUM INTO, а не cp: телефон шлёт
непрерывно, и файл под записью копировать нельзя.
Двигает строку «Завершения» цели: «Телефон шлёт на публичный адрес из любой сети, агент читает по тому же домену».