Files
pet-project-server/docs/backlog/secrets-env-to-file.md
T
av 3b846536f9 backlog: заведён запрет секретов в выводе плейбуков
- `inv pl` идёт с `--diff`, и 14 задач в 12 плейбуках печатают отрендеренные
  секреты в терминал; `no_log` есть только в `roles/secrets`. Инвентарь,
  рычаги (`no_log`, `diff: false`, вынос в отдельный файл) и порядок — в задаче.
- Актуализирована `secrets-env-to-file`: список приложений сверен с шаблонами
  (tuwunel чистый, у gitea только SMTP), добавлен мотив с диффом.
2026-07-25 12:03:08 +03:00

2.5 KiB
Raw Blame History

Секреты приложений через *_FILE, а не inline environment:

Приоритет: средний

miniflux сделан правильно — роль secrets кладёт каждую переменную vault в отдельный файл, каталог монтируется :ro, а compose ссылается на *_FILE (files/miniflux/docker-compose.template.yml). Остальные держат секреты прямыми значениями в environment::

  • outline — пароль postgres, SECRET_KEY, UTILS_SECRET, секрет OIDC, SMTP
  • tududi — session secret, секрет OIDC, ключ LLM, SMTP
  • wakapi — salt паролей, секрет OIDC, SMTP
  • wanderer — мастер-ключ meilisearch, ключ шифрования pocketbase
  • grampsgramps_secret_key, SMTP
  • gitea — только SMTP (postbox_pass)

tuwunel из списка убран: в его compose секретов нет (сверено 2026-07-25). memos и calibre тоже чистые.

Такие переменные читает любой член группы docker, любой процесс с доступом к /proc/<pid>/environ, и они попадают в docker inspect. Где приложение умеет *_FILE или конфиг-файл — постепенно перевести по образцу miniflux.

Второй мотив, найденный позже: пока секрет стоит прямым значением в шаблоне, ansible-playbook --diff печатает его в терминал при каждом изменении файла. Вынос в отдельный файл чинит это структурно — дифф compose остаётся читаемым, а секретный файл рендерит роль secrets под no_log. Но покрывает только environment:; конфиги (authelia, bifrost, backups, remembos) и общий запрет на вывод — в no-secrets-in-playbook-output, и она идёт первой: там дёшево и закрывает всё сразу.

Из sec-ревью (fable, 2026-07-13). Связка с service-users-docker-group.

Связано: files/outline, files/wakapi, files/tududi, files/wanderer, files/gramps, files/gitea, files/miniflux (образец), roles/secrets.