- Шесть задач `secrets-file-*` вместо одной: outline, wakapi, authelia, gramps (средний), gitea, tududi (низкий, выигрыш частичный). Wanderer отпал — файловых секретов не умеет ни meilisearch, ни pocketbase. - Матрица механизмов со ссылками на код уехала в docs/drafts/secrets-file-support.md, родитель — на кладбище.
1.8 KiB
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 не показывает секретный ключ
приложения.
Механизм и ссылки на код:
справка по файловым секретам.
Из декомпозиции secrets-env-to-file (2026-07-25).
Связано: files/gramps, roles/secrets, no-secrets-in-playbook-output.