Vue d'ensemble

Documentation Infrastructure OBBConnect — Montréal

Version
v5.1 — 04 April 2026
Serveur
homeserver · 192.168.1.21
Matériel
GMKtec NucBox K8 Plus · AMD Ryzen 7 8845HS · 32 Go · 1 To SSD
OS
Ubuntu 24.04.4 LTS Server
Réseau
UniFi Dream Machine SE · VLAN 1/30/50/60
Domaine
obbconnect.net · Cloudflare Zero Trust : obbconnect
Document de référence opérationnelle pour l'administration du homeserver domotique OBBConnect. Généré automatiquement — toujours à jour.
Section 1

Inventaire des machines

Rôles et adresses IP de chaque équipement

MachineIPVLANRôle
homeserver (GMKtec NucBox K8 Plus)192.168.1.21VLAN 1 AdminMini PC principal · AMD Ryzen 7 8845HS · 32 Go · 1 To · Héberge tous les conteneurs Docker
QNAP TS-435XeU192.168.1.60VLAN 1 AdminNAS — sauvegardes automatiques SMB, serveur NTP primaire
Raspberry Pi 4192.168.1.70VLAN 1 AdminMonitoring températures rack — Prometheus + Grafana
UDM-SE192.168.1.1VLAN 1 AdminUniFi Dream Machine SE — routeur/firewall, VLANs, WireGuard
CyberPower UPS192.168.1.62VLAN 1 AdminOnduleur réseau — monitoring batterie
MacBook ProDHCPVLAN 1 AdminPoste d'administration — SSH ed25519 via 1Password + Touch ID
Section 2

Services Docker — homeserver

Gestion via Portainer · Mises à jour automatiques via Watchtower

ConteneurImagePort(s)URL localeURL externe
homeassistantghcr.io/home-assistant/home-assistant:stable8123http://192.168.1.21:8123ha-ext.obbconnect.net
music-assistantghcr.io/music-assistant/server:latest8095/8097http://192.168.1.21:8095ma-ext.obbconnect.net
portainerportainer/portainer-ce:latest9000http://192.168.1.21:9000
adguardhomeadguard/adguardhome:latest53/3000http://192.168.1.21:3000
nginx-proxy-managerjc21/nginx-proxy-manager:latest80/443/81http://192.168.1.21:81
graylog (stack)graylog/graylog + MongoDB + OpenSearch9001http://192.168.1.21:9001
n8nn8nio/n8n:latest5678http://192.168.1.21:5678
vaulthashicorp/vault:latest8200http://192.168.1.21:8200
cloudflare-ddnsfavonia/cloudflare-ddns:latest
cloudflaredcloudflare/cloudflared:latestTunnel sortantTunnel ZT
watchtowercontainrrr/watchtower:latest
Port 8097 requis pour Music Assistant (streamserver Sonos) — règle firewall IoT → homeserver distincte du port 8095.

Réseaux Docker

Réseau DockerSubnetUsage
nginx-proxy-manager_default172.19.0.0/16NPM, AdGuard (172.19.0.3), Graylog, cloudflared
bridge (défaut)172.17.0.0/16homeassistant, portainer, watchtower
hostmusic-assistant — utilise directement l'IP du homeserver
Section 3

Réseau & VLANs

UniFi Dream Machine SE · Zones firewall

VLANNomSubnetÉquipements / Usage
VLAN 1Admin192.168.1.0/24homeserver, NAS, Pi, UDM-SE, UPS, MacBook Pro. DNS : 192.168.1.21
VLAN 30IoT192.168.30.0/24Sonos, Philips Hue, Lutron, Apple TV, Shelly EM (à venir)
VLAN 50GuestTHE INVADERS — réseau invités isolé
VLAN 60Apt1641 — appartement isolé

Règles firewall IoT → homeserver

RègleProtoPortDestinationRaison
ALLOW IoT → HATCP8123192.168.1.21Home Assistant API
ALLOW IoT → MA APITCP8095192.168.1.21Music Assistant commandes
ALLOW IoT → MA StreamTCP8097192.168.1.21Sonos streamserver audio
Section 4

Règles UFW — homeserver

Audit complet 26/03/2026 · Mis à jour 29/03/2026

RègleActionSourceCommentaire
AnywhereALLOW192.168.1.0/24Local LAN — accès complet
AnywhereALLOW192.168.30.0/24Sonos VLAN — Music Assistant host
AnywhereALLOW192.168.2.0/24WireGuard VPN clients ← ajouté 27/03/2026
22/tcpALLOW192.168.1.0/24SSH — Admin VLAN uniquement
8123/tcpALLOW172.16.0.0/12Home Assistant — réseaux Docker
8095/tcpALLOW172.19.0.0/16Music Assistant — NPM Docker
8200/tcpALLOW172.19.0.0/16HashiCorp Vault — NPM Docker
80/tcp · 443/tcpALLOWAnywhereNPM HTTP/HTTPS
53/tcp+udpALLOWAnywhereAdGuard DNS
21064ALLOW192.168.1.0/24HomeKit Bridge — Admin VLAN
Section 5

Accès distant

VPN · Cloudflare Zero Trust · Tunnels SSH

MéthodePortéeDétailsUsage
SSH directLocal + VPNssh homeserver — ed25519 via 1Password + Touch IDAdministration système, Docker CLI
WireGuard VPNDistantvpn.obbconnect.net:51820 — split-tunnel subnets LANAccès complet LAN depuis l'extérieur
Cloudflare Zero TrustDistant sans VPNTunnel chiffré — policy Accès OBB (Tutanota, 1 mois)ha-ext, nas-ext, ups-ext, ma-ext
Nabu CasaDistant (fallback)Compte iCloud — Alexa + Google AssistantApps mobiles HA, assistants vocaux
Tunnels SSHLocal + VPNssh -N tunnel-[service] — 7 tunnels configurésSecours si NPM ou VPN indisponible

Tunnels SSH Mac

Alias SSHPort localURL après tunnel
tunnel-ha18123http://localhost:18123
tunnel-portainer19000http://localhost:19000
tunnel-adguard13000http://localhost:13000
tunnel-graylog19001http://localhost:19001
tunnel-nas18080http://localhost:18080
tunnel-vault18200http://localhost:18200/ui
tunnel-n8n15678http://localhost:15678
Toujours fermer le tunnel avec Ctrl+C après utilisation.

WireGuard VPN

ParamètreValeur
Domainevpn.obbconnect.net (Cloudflare DNS only, TTL 2 min)
Port51820/UDP
Subnet VPN192.168.2.0/24 — gateway 192.168.2.1
ClientsOBB24 (192.168.2.2), MacBook Pro OBB (192.168.2.3), CLIENT_NAS_CATH (192.168.2.4)
Split-tunnel192.168.2.0/24 + 192.168.1.0/24 + 192.168.30.0/24
Fix 27/03/2026 : route statique 192.168.2.0/24 ajoutée dans /etc/netplan/50-cloud-init.yaml + règle UFW ALLOW from 192.168.2.0/24.
Section 6

Nginx Proxy Manager

Certificat SSL wildcard *.obbconnect.net

ParamètreValeur
Ports exposés80 (HTTP), 443 (HTTPS), 81 (interface admin)
Certificat SSLWildcard *.obbconnect.net — Let's Encrypt + Cloudflare DNS
Expiration cert.21 juin 2026 — renouvellement automatique via NPM

Proxy Hosts HTTPS actifs

URL publiqueBackendService
ha.obbconnect.net192.168.1.21:8123Home Assistant
ma.obbconnect.net192.168.1.21:8095Music Assistant
portainer.obbconnect.net192.168.1.21:9000Portainer Docker
adguard.obbconnect.net192.168.1.21:3000AdGuard Home
graylog.obbconnect.net192.168.1.21:9001Graylog logs
n8n.obbconnect.net192.168.1.21:5678n8n automatisation
npm.obbconnect.net127.0.0.1:81NPM interface admin
vault.obbconnect.net192.168.1.21:8200HashiCorp Vault
nas.obbconnect.net192.168.1.60:443QNAP NAS
grafana.obbconnect.net192.168.1.70:3000Grafana Pi
ups.obbconnect.net192.168.1.62CyberPower UPS
Section 7

Cloudflare DNS & Zero Trust

obbconnect.net · Plan Free · team: obbconnect

Entrées DNS actives

Sous-domaineTypeCibleProxyNotes
vpnA70.24.246.252DNS onlyWireGuard — IP WAN Bell, MAJ par cloudflare-ddns
ha / portainer / graylog / adguard / ma / npm / n8n / vaultA192.168.1.21DNS onlyServices homeserver via NPM
nasA192.168.1.60DNS onlyQNAP NAS via NPM
grafanaA192.168.1.70DNS onlyGrafana Pi — accès direct port 3000
upsA192.168.1.62DNS onlyCyberPower UPS — accès direct
homeCNAMEobbconnect-home.pages.devProxiedDashboard Cloudflare Pages
docsCNAMEobbconnect-home.pages.devProxiedDocumentation Cloudflare Pages

Tunnels Zero Trust exposés

URL externeBackendNotes
ha-ext.obbconnect.nethomeassistant:8123trusted_proxies configuré dans HA
nas-ext.obbconnect.net192.168.1.60 (HTTPS+NoTLS)Accès NAS externe
ups-ext.obbconnect.net192.168.1.62Accès UPS externe
ma-ext.obbconnect.nethomeassistant:8095Accès Music Assistant externe
Politique Access "Accès OBB" — email Tutanota uniquement, session 1 mois. Applications Access : Home Dashboard + OBB Touch Icon (Bypass Everyone) + docs.obbconnect.net.
Section 8

Home Assistant

Domotique centrale · HACS · Mushroom Cards · Kiosk Mode

IntégrationBridge / IPVLANNotes
Philips HueHue Bridge ProIoT 30Intégration native HA
Lutron CasetaBridge ProIoT 30Intégration native HA
SonosIPs manuellesIoT 30IPs fixes dans configuration.yaml — mDNS ne traverse pas les VLANs
Google CastAuto-discoveryAdmin 1Nest Hub, Chromecast, TV Streamer
Apple TV Salon192.168.1.168Admin 1Hub HomeKit cross-VLAN
Apple TV Loft192.168.1.169Admin 1ATV-LOFT
HomeKit BridgePort 21064Admin 1iPhone → ATV Salon → HASS Bridge → HA → IoT
Nabu CasaCloud (iCloud)Alexa + Google Assistant. 0 entité exposée volontairement
DS18B20 x3REST → PrometheusAdmin 1Températures rack via Pi 192.168.1.70:9090
Music Assistant8095 / 8097IoT 30Sonos multi-pièces — port 8097 streamserver

Assistants vocaux

AssistantMéthodeStatus
Amazon AlexaSkill 'Home Assistant' via Nabu CasaActif
Google AssistantSkill 'Home Assistant Cloud by Nabu Casa'Actif
Synthèse vocale HABrigitteNeural — françaisActif
Section 9

HashiCorp Vault

Gestionnaire de secrets machine · Auto-unseal AWS KMS

ParamètreValeur
Image Dockerhashicorp/vault:latest
Compose/opt/docker/compose/vault-compose.yml
Config/opt/docker/vault/config/vault.hcl
Port binding192.168.1.21:8200 (corrigé le 29/03/2026 — était 127.0.0.1)
api_addrhttp://192.168.1.21:8200
Auto-unsealAWS KMS — us-east-2
Accès HTTPShttps://vault.obbconnect.net (via NPM)
Accès tunnel SSHssh -N tunnel-vault → http://localhost:18200/ui
Emergency Kit1Password : Vault — Emergency Kit — homeserver

Secrets engines actifs

CheminTypeContenu
obbconnect/backup/unifiKVUNIFI_PASS — mot de passe UniFi pour scripts backup
obbconnect/backup/rcloneKVaccount, key, crypt_password, crypt_password2 — Backblaze B2
obbconnect/ai/anthropicKVClé API Claude — workflows n8n

Architecture secrets OBBConnect

Règle fondamentale : un humain tape le secret → 1Password. Un processus lit le secret → Vault.
CoffreTypeContenu
1PasswordHumainLogins, SSH keys, accès admin, emergency kits, credentials cloud
HashiCorp VaultMachineTokens API, credentials scripts, secrets Docker, rclone B2
Section 10

n8n — Automatisation

Workflows · Rapport Graylog · Intégrations Telegram

ParamètreValeur
Port5678
Accès localhttp://192.168.1.21:5678
Accès HTTPShttps://n8n.obbconnect.net
Tunnel SSHssh -N tunnel-n8n → http://localhost:15678

Workflows actifs

WorkflowDéclencheurAction
🔴 Alerte Docker - Services DownCron toutes les 5 minDocker TCP API → Telegram si service down
📊 Rapport Graylog quotidienCron 7h00Graylog API → Claude Haiku → Telegram
Graylog → Claude Ops AdvisorWebhook /webhook/graylog-alertClaude Sonnet → analyse → action Docker ou SSH Pi

Ops Advisor — Actions supportées

ActionMéthodeCible
restart_homeassistantDocker API 172.19.0.1:2375Conteneur homeassistant
restart_musicassistantDocker API 172.19.0.1:2375Conteneur music-assistant
restart_nginxDocker API 172.19.0.1:2375Conteneur nginx-proxy-manager
restart_adguardDocker API 172.19.0.1:2375Conteneur adguardhome
restart_graylogDocker API 172.19.0.1:2375Conteneur graylog
reboot_piSSH credential Pi - SSH192.168.1.70
Section 11

Dashboard

home.obbconnect.net · Cloudflare Pages · GitHub

ParamètreValeur
URLhttps://home.obbconnect.net
ProtectionCloudflare Access — OTP email Tutanota, session 1 mois
HébergementCloudflare Pages — déploiement auto à chaque git push
Repo GitHubgithub.com/olivierbb73/obbconnect-home (privé)
Clone local Mac~/Documents/obbconnect-home/
ÉditeurVS Code — NE PAS utiliser TextEdit (corrompt UTF-8)
Fond de pagebackground.jpg à la racine — image aérienne rétro-futuriste
Icône iPhoneapple-touch-icon.png 180×180px — Cloudflare Access Bypass
Documentation webhome.obbconnect.net/docs.html — générée par generate.py

Workflow ajout tuile / mise à jour doc

# 1. Copier l'image dans le repo
cp ~/Documents/obbconnect-home/sources/NomImage.png ~/Documents/obbconnect-home/images/service.png

# 2. Modifier index.html avec Python (jamais TextEdit)
python3 << 'EOF'
# insérer le bloc JS du service
EOF

# 3. Mettre à jour la doc
python3 ~/Documents/obbconnect-home/generate.py

# 4. Pousser sur GitHub
cd ~/Documents/obbconnect-home && git add . && git commit -m '...' && git push origin main
Toujours copier depuis sources/ → images/ avant git add. Git compare les hash — si identique, pas de commit.

Tuiles actives

ServiceImageLiens
Home Assistantha.pngLocal + HTTPS + Tunnel CF + SSH tunnel
Music Assistantma.pngLocal + HTTPS + Tunnel CF
Portainerportainer.pngLocal + HTTPS + SSH tunnel
AdGuard Homeadguard.pngLocal + HTTPS + SSH tunnel
Nginx Proxy Managernpm.pngLocal + HTTPS
Cloudflarecloudflare.pngdash.cloudflare.com + one.dash.cloudflare.com
Grayloggraylog.pngLocal + HTTPS + SSH tunnel
Grafanagrafana.pngLocal + HTTPS
NAS QNAPnas.pngLocal + HTTPS + Tunnel CF + SSH tunnel
CyberPower UPSups.pngLocal + HTTPS + Tunnel CF
Backblaze B2backblaze.pngsecure.backblaze.com (cloud)
Nabu Casanabucasa.pngaccount.nabucasa.com + HA local
iCloudicloud.pngicloud.com + mail + photos + drive + find + appleid
HashiCorp Vaultvault.pngLocal + HTTPS + SSH tunnel
n8nn8n.pngLocal + HTTPS + SSH tunnel
Section 12

Sauvegardes

Backup quotidien homeserver → NAS QNAP via SMB

ParamètreValeur
FréquenceQuotidienne à 3h00 du matin (cron)
Source/home/homeadmin/docker/ (toutes les données persistantes)
Destination/mnt/nas-backup/homeserver-backup/ (SMB sur QNAP)
Rétention14 copies — rotation automatique
Montage NAS/mnt/nas-backup — credentials dans /etc/nas-credentials (chmod 600)
0 3 * * * /usr/local/bin/backup-homeserver.sh >> /var/log/backup-homeserver.log 2>&1
Section 13

Points de vigilance

Pièges connus · Fixes documentés · Bonnes pratiques

mDNS ne traverse pas les VLANs — Sonos et appareils similaires nécessitent des IPs fixes dans configuration.yaml HA.
NAT WireGuard disparaît après reset modem — Règle persistée via /data/on_boot.d/10-wireguard-nat.sh avec sleep 10.
Route retour VPN homeserver — La route 192.168.2.0/24 doit être dans /etc/netplan/50-cloud-init.yaml pour survivre aux reboots.
Music Assistant — mode host networking — NPM contacte MA via 192.168.1.21:8095. La règle UFW 172.19.0.0/16 → port 8095 est indispensable.
Vault port binding — vault-compose.yml doit avoir 192.168.1.21:8200:8200 (pas 127.0.0.1). Si modifié, redémarrer le conteneur.
Certificat SSL wildcard — *.obbconnect.net expire le 21 juin 2026 — renouvellement auto via NPM à surveiller.
TextEdit corrompt UTF-8 — Toujours utiliser VS Code pour éditer index.html. Jamais TextEdit.
Images dashboard — Toujours copier depuis sources/ → images/ avant git add. Git compare les hash.
SSH UDM-SE — Doit rester désactivé quand non utilisé.
Section 14

Checklist de santé système

Vérifications rapides après maintenance ou reboot

homeserver (192.168.1.21)

Accès distant