# Мелкий хардненинг контейнеров **Приоритет:** низкий - **`no-new-privileges`**: ни один compose-шаблон не задаёт `security_opt: ["no-new-privileges:true"]`. Добавить всем — одна строка, режет эскалацию через setuid-бинарники в образах. - **non-root `user:`**: без него работают caddyproxy, gramps (данные в `/root/.gramps`), rssbridge, dozzle, homepage и valkey/postgres-сайдкары gramps. Дотянуть там, где образ позволяет (rssbridge, valkey) — продолжение уже принятой в проекте практики. - **homepage на `:latest`** (`vars/homepage.yml`) — плавающий тег + ночной `docker image prune` может подтянуть другое содержимое без отката. Перевести на иммутабельный `-` по образцу transcriber (`vars/transcriber.images.yml`). - **Соглашение о портах**: зафиксировать в AGENTS.md, что новые `ports:` — только с `127.0.0.1:`. Docker публикует порты мимо UFW, поэтому дисциплина localhost-биндинга — единственный контроль (сейчас соблюдается: apprise, wanderer). Из sec-ревью (fable, 2026-07-13). Связано: все files/*/docker-compose*.template.yml, vars/homepage.yml, AGENTS.md.