# 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).