backlog: secrets-env-to-file разложена по приложениям

- Шесть задач `secrets-file-*` вместо одной: outline, wakapi, authelia,
  gramps (средний), gitea, tududi (низкий, выигрыш частичный). Wanderer
  отпал — файловых секретов не умеет ни meilisearch, ни pocketbase.
- Матрица механизмов со ссылками на код уехала в
  docs/drafts/secrets-file-support.md, родитель — на кладбище.
This commit is contained in:
av
2026-07-25 12:25:50 +03:00
parent f9a8c64377
commit fbd0a66f44
14 changed files with 384 additions and 100 deletions
+27
View File
@@ -0,0 +1,27 @@
# tududi: секреты в смонтированный `.env`
**Приоритет:** Низкий
Tududi `1.2.4` не умеет файловых секретов вообще: session secret, секрет OIDC,
ключ LLM и пароль SMTP читаются напрямую из `process.env`, конфиг-файла и
CLI-опций нет. Проверено грепом по репозиторию на теге, не по докам.
Единственный доступный путь — не `env_file:` (при нём значения всё равно попадают
в `Config.Env`), а **смонтированный файл**: `backend/app.js` вызывает `dotenv`, а
рабочая директория контейнера — `/app/backend`, значит `.env` можно положить туда
томом. Тогда секреты не видны в `docker inspect`, но остаются в окружении
процесса и в `/proc/<pid>/environ`.
Приоритет низкий именно поэтому: механизм нештатный (держится на том, что
`dotenv` остаётся в prod-зависимостях образа), а закрывает только один вектор из
трёх. Если апстрим когда-нибудь добавит `_FILE` — задача переписывается на него.
Готово, когда `docker inspect` контейнера tududi не показывает ни одного из
четырёх секретов.
Разбор и ссылки на код:
[справка по файловым секретам](../drafts/secrets-file-support.md).
Из декомпозиции `secrets-env-to-file` (2026-07-25).
Связано: files/tududi,
[no-secrets-in-playbook-output](no-secrets-in-playbook-output.md).