- Шесть задач `secrets-file-*` вместо одной: outline, wakapi, authelia, gramps (средний), gitea, tududi (низкий, выигрыш частичный). Wanderer отпал — файловых секретов не умеет ни meilisearch, ни pocketbase. - Матрица механизмов со ссылками на код уехала в docs/drafts/secrets-file-support.md, родитель — на кладбище.
28 lines
1.8 KiB
Markdown
28 lines
1.8 KiB
Markdown
# 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).
|