%%{init: {'theme': 'base', 'flowchart': {'nodeSpacing': 40, 'rankSpacing': 50}}}%% flowchart TB subgraph ha_host ["huitral 192.168.99.22 - network_mode: host"] direction TB subgraph ha_container ["Home Assistant - Docker"] direction TB ha_core["HA Core
ghcr.io/home-assistant/
home-assistant:stable
Port: 8123"] ha_ws["WebSocket
connexions longues"] end subgraph ha_config ["Configuration"] direction LR config_dir["/opt/homeassistant/config
-> /config"] config_yaml["configuration.yaml
internal_url: ha.arauco.online
external_url: ha.arauco.online"] secrets["secrets.yaml"] config_dir --- config_yaml config_dir --- secrets end subgraph ha_proxy ["Reverse Proxy"] trusted["trusted_proxies
192.168.99.0/24
use_x_forwarded_for: true"] end subgraph ha_integrations ["Integrations"] direction TB subgraph hacs_int ["HACS"] direction LR oidc_comp["hass-oidc-auth
Composant OIDC"] vikunja_int["Vikunja Todo
Listes de taches"] end subgraph cameras ["Cameras"] direction LR onvif["ONVIF
Decouverte auto + PTZ"] rtsp["RTSP / MJPEG
Flux video"] end subgraph local_todo ["Todo local"] ha_todo["HA Shopping List
Listes locales"] end end end subgraph oidc_auth ["Authentification OIDC"] direction TB auth_flow["auth_oidc:
client_id: homeassistant
discovery_url: kc.arauco.online
/realms/chiruca/.well-known/
openid-configuration"] login_btn["Bouton SSO
OpenID Connect"] welcome["/auth/oidc/welcome
Code unique 5 min"] auth_flow --> login_btn --> welcome end subgraph keycloak_ext ["Keycloak npagnun .35"] kc["Realm chiruca
Client: homeassistant
Redirect: ha.arauco.online
/auth/oidc/callback"] google["-> Google IdP"] kc --> google end subgraph caddy_ext ["Caddy araucaria .50"] caddy["ha.arauco.online
HTTPS -> :8123
WebSocket: read_timeout 0"] end subgraph vikunja_ext ["Vikunja huitral .22"] vk["vk.arauco.online
:3456
API REST"] end subgraph users_ext ["Utilisateurs"] direction TB persons["Personnes HA
paul, anne, toshiro..."] notify["Notifications mobiles
notify.mobile_app_*"] end caddy -->|"HTTP + WS"| ha_core oidc_comp -->|"OIDC"| kc vikunja_int -->|"API"| vk ha_core --> ha_integrations users_ext --> ha_core persons -.-> notify classDef haStyle fill:#1e4a4a,stroke:#4a9a9a,color:#a8e0e0 classDef configStyle fill:#2a3a4a,stroke:#6a8aaa,color:#b0d0e8 classDef iamStyle fill:#4a1e3a,stroke:#d94a8a,color:#f0a8c8 classDef svcStyle fill:#1e4a2e,stroke:#4a9a6a,color:#a8e0c0 classDef netStyle fill:#1e3a5f,stroke:#4a90d9,color:#a8d0f0 classDef secStyle fill:#4a3a1e,stroke:#d9a84a,color:#f0d8a8 classDef userStyle fill:#3a1e5f,stroke:#8a6ad9,color:#c8b0f0 class ha_core,ha_ws haStyle class config_dir,config_yaml,secrets configStyle class trusted,auth_flow,login_btn,welcome secStyle class oidc_comp,vikunja_int,onvif,rtsp,ha_todo svcStyle class kc,google iamStyle class caddy netStyle class vk svcStyle class persons,notify userStyle