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

57 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 при первом запуске.
## Деплой
```bash
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` обязательно добавить:
```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` (только с самого сервера)