- Шесть задач `secrets-file-*` вместо одной: outline, wakapi, authelia, gramps (средний), gitea, tududi (низкий, выигрыш частичный). Wanderer отпал — файловых секретов не умеет ни meilisearch, ни pocketbase. - Матрица механизмов со ссылками на код уехала в docs/drafts/secrets-file-support.md, родитель — на кладбище.
27 lines
1.8 KiB
Markdown
27 lines
1.8 KiB
Markdown
# gramps: секретный ключ из файла
|
||
|
||
**Приоритет:** Средний
|
||
|
||
`GRAMPSWEB_SECRET_KEY` стоит прямым значением в `environment:`. Если переменную
|
||
не задавать, entrypoint образа читает ключ из файла `/app/secret/secret` — и этот
|
||
путь **уже смонтирован** в нашем compose как `gramps_secret`. То есть правка
|
||
сводится к «записать значение в файл и убрать переменную»: самая дешёвая из всей
|
||
серии. Entrypoint общий у `gramps_app` и `gramps_celery`, оба читают тот же файл,
|
||
расхождения не будет.
|
||
|
||
Пароль SMTP так не выносится: конфиг читается через `from_prefixed_env`, никакой
|
||
обработки `_FILE` нет. Обходной путь существует (Flask исполняет `config.cfg` как
|
||
Python, значит значение можно прочитать из файла прямо в нём), но он держится на
|
||
детали реализации и нигде не обещан — брать только если решим, что оно того
|
||
стоит. Пока пароль SMTP остаётся в env и закрывается `no_log`.
|
||
|
||
Готово, когда `docker inspect` контейнеров gramps не показывает секретный ключ
|
||
приложения.
|
||
|
||
Механизм и ссылки на код:
|
||
[справка по файловым секретам](../drafts/secrets-file-support.md).
|
||
Из декомпозиции `secrets-env-to-file` (2026-07-25).
|
||
|
||
Связано: files/gramps, roles/secrets,
|
||
[no-secrets-in-playbook-output](no-secrets-in-playbook-output.md).
|