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:
@@ -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).
|
||||
Reference in New Issue
Block a user