Приоритет: high · Размер: M · Бэклог-ранг: 2/20
Проблема
Bind-mount db/ (docker-compose.prod.yml:17-18) — единственная копия всех юзеров, sub_id-привязок, токенов панелей и роутинг-конфига. Бэкапа нет нигде (grep по репозиторию пуст). WAL активен (DSN в open.go), поэтому наивная копия файла на середине записи неконсистентна. Потеря/повреждение = ручное переразвёртывание каждого юзера против 3x-ui, а recreate минтит новые subId → у каждого клиента ломается ссылка.
Почему важно
Необратимая полная потеря данных с восстановлением только вручную на stateful internet-facing сервисе. Самый высокоимпактный ops-пробел.
Предлагаемое решение
Добавить периодический консистентный бэкап (sqlite3 .backup / VACUUM INTO, либо litestream-sidecar) в off-host хранилище с документированным restore-путём; минимум — WAL-safe команда бэкапа в README. Опционально — admin export-эндпоинт как follow-up.
Затронутые файлы
docker-compose.prod.yml, internal/repository/open.go, README.md, docs/subgen.md
Из аудита кодовой базы subgen (10 подсистем → adversarial-верификация, 71 находка). Бэклог-ранг указан для приоритизации.
Приоритет: high · Размер: M · Бэклог-ранг: 2/20
Проблема
Bind-mount
db/(docker-compose.prod.yml:17-18) — единственная копия всех юзеров, sub_id-привязок, токенов панелей и роутинг-конфига. Бэкапа нет нигде (grep по репозиторию пуст). WAL активен (DSN вopen.go), поэтому наивная копия файла на середине записи неконсистентна. Потеря/повреждение = ручное переразвёртывание каждого юзера против 3x-ui, а recreate минтит новые subId → у каждого клиента ломается ссылка.Почему важно
Необратимая полная потеря данных с восстановлением только вручную на stateful internet-facing сервисе. Самый высокоимпактный ops-пробел.
Предлагаемое решение
Добавить периодический консистентный бэкап (
sqlite3 .backup/VACUUM INTO, либо litestream-sidecar) в off-host хранилище с документированным restore-путём; минимум — WAL-safe команда бэкапа в README. Опционально — admin export-эндпоинт как follow-up.Затронутые файлы
docker-compose.prod.yml,internal/repository/open.go,README.md,docs/subgen.mdИз аудита кодовой базы subgen (10 подсистем → adversarial-верификация, 71 находка). Бэклог-ранг указан для приоритизации.