Files
home-assistant/CLAUDE.md
striker 71ca5de2e9 docs: уточнение про docker subnet в trusted_proxies
При reverse-proxy через nginx на 127.0.0.1:8123 source IP внутри
контейнера — это gateway docker-сети (172.x.0.1), а не 127.0.0.1.
Без 172.16.0.0/12 в trusted_proxies HA возвращает 400.
2026-05-08 04:42:16 +03:00

2.4 KiB
Raw Permalink Blame History

CLAUDE.md — home-assistant

Что

Home Assistant Container на str-u-01 (45.10.53.148). UI публикуется через nginx на ha.striker.su.

Стек

  • homeassistant/home-assistant:stable (Docker Hub, обычный Container — не Supervised, без addons)
  • bridge network, 127.0.0.1:8123:8123 (только loopback на сервере)
  • volume bind-mount: ./config:/config (НЕ в git)
  • log-driver: journald (см. memory reference_fail2ban_gitea.md про journald на str-u-01)
  • restart: unless-stopped, healthcheck на /manifest.json

Структура

home-assistant/
├── docker-compose.yml      # сервис ha
├── .gitignore              # исключает config/
├── README.md
└── CLAUDE.md

На сервере: /opt/docker/sites/home-assistant/. Папка config/ создаётся автоматически HA при первом запуске.

Деплой

ssh striker@str-u-01.striker.su
cd /opt/docker/sites/home-assistant
git pull
docker compose pull && docker compose up -d

nginx

vhost: /etc/nginx/conf.d/ha.striker.su на str-u-01 (ssl + reverse-proxy на 127.0.0.1:8123). Обязательно proxy_set_header Upgrade / Connection upgrade для WebSocket — UI ломается без них.

LE-сертификат

DNS-01 через Technitium API (см. memory feedback_acme_technitium_dns01.md). Файлы: /etc/letsencrypt/live/ha.striker.su/fullchain.pem + privkey.pem.

HA конфиг

После первого запуска в config/configuration.yaml обязательно добавить:

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 127.0.0.1
    - ::1
    - 172.16.0.0/12   # docker bridge — nginx изнутри контейнера виден как 172.x.0.1

⚠️ 127.0.0.1 недостаточно: nginx идёт на 127.0.0.1:8123 хоста, Docker NAT'ит трафик, и внутри контейнера source IP — это IP gateway docker-сети (172.20.0.1 или подобный). Без 172.16.0.0/12 HA отвергает запросы как "untrusted proxy" → 400.

После правок: docker restart home-assistant.

Доступы

  • UI: https://ha.striker.su (онбординг при первом входе — создаёт admin)
  • Локально: curl http://127.0.0.1:8123 (только с самого сервера)