C’est ce que je fais. Je trouve ça plutôt pratique.
Et justement un stack/un container on évite les accidents
D’accord avec toi pour avoir un stack ou compose par container.
Comment tu backup tes stack?
J’ai un container samba qui expose tous les volumes utilisés par les différents containers.
Je sauvegarde ce répertoire avec l’outil activbackup de mon Synology.
Bonjour,
Effectivement, cela devient simple avec Docker sauf quand on cherche à faire des dock custom, mais ça se fait.
Je te rejoins pour AdGuard et Portainer
Concernant Heimdall, apporte-t-il un vrai plus par rapport aux pages d’accueil de Firefox ou Chrome (désolé, mais un peu du mal à voir le gros plus…)
Bonjour, Heimdall sert a centraliser les liens quand tu as plusieurs serveurs installés avec des sous domaines.
Bonjour,
Désolé de poser une question de néophyte.
L’installation en mode supervised de HA fonctionne déjà sous docker et les add-on sont aussi sous docker.
Pourquoi passez vous par des docker-compose, je ne vois pas la plus-value là.
C’est une bonne question !
Dans mon cas, pour deux raisons principales:
- je veux pouvoir avoir accès à l’OS sous-jacent simplement et que ce soit debian. Donc, ça élimine HAOS.
- je trouve le concept du ‹ superviseur › assez antinomique des principes de base de Linux. Il y a un côté « boite noire » (le côté appliance) qui me gêne. En gérant les containers à la main (avec portainer et wud ou watchtower) j’ai le même niveau de service (je pense) en restant en contrôle.
Donc, pour quelqu’un qui a de l’expérience sous linux, faire les choses à la main sera paradoxalement plus simple que le mode supervisé qui rajoute une couche un peu « magique » et change certaines habitudes.
En plus, je ne suis pas convaincu par les add-on très « externes » à home assistant (pihole, adguard,… par exemple). Je les utilise, mais, pas sur le même machine/VM que HA.
Comme le dit @golfvert pour garder la maîtrise.
Un néophyte aura tout intérêt à être sous HA OS. HA Supervised est censé être pour les expérimentés mais beaucoup de personnes l’utilisent pour avoir accès à un debian pour installer des outils supplémentaires tout en gardant la simplicité qu’offre le superviseur.
Celui qui veut garder la maîtrise complète passe par les couches les plus basses et les fait lui même communiquer entre elles.
De plus, tout faire dans HA c’est être dépendant du Superviseur, alors que comme le dit @golfvert, les add-ons sont des containers que nous pouvons nous même gérer et mettre en dehors de HA car aucun pour moi n’a vocation à être porté par la solution domotique.
Merci pour vos retours,
j’avais commencé avec un docker-compose de ha puis aprés avoir lu differents postes concernant supervisor, add-on, je suis passé sur la version supervised du coup.
Mais je me note votre methode d’install. dans un coin, j’aime bien garder la main sur mon système.
Bonsoir a tous,
J’utilise également les containers pour faire tourner tout ce que je trouve d’utile
En gros mes principaux containers sont :
HomeAssistant :
version: '3'
services:
homeassistant:
container_name: Homeassistant
image: homeassistant/home-assistant
volumes:
- /sharedfolders/AppData/HomeAssistant:/config
- /sharedfolders/AppData/HomeAssistant/data:/data
- /etc/localtime:/etc/localtime:ro
restart: unless-stopped
privileged: true
network_mode: host
Portainer :
version: '3.7'
services:
Portainer:
restart: unless-stopped
container_name: Portainer
image: portainer/portainer-ce:latest
ports:
- "9000:9000"
environment:
- PUID=1000
- PGID=100
- TZ=Europe/Paris
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./:/data
networks:
- traefik_proxy
labels:
##Pour autoriser l'accès via Traefik depuis l'extérieur##
- "traefik.enable=true"
- "traefik.docker.network=traefik_proxy"
- "traefik.port=9000"
- "traefik.backend=Portainer"
- "traefik.entryPoint=https"
- "traefik.frontend.rule=Host:mondomaine.com"
#########################################################
##Authentification 2FA avec google OAuth2 ###############################
- "traefik.frontend.auth.forward.address=http://oauth:4181"
- "traefik.frontend.auth.forward.authResponseHeaders: X-Forwarded-User"
- "traefik.frontend.auth.forward.trustForwardHeader=true"
#########################################################################
###Autoriser les MAJ auto via watchtower ###
- "com.centurylinklabs.watchtower.enable=true"
networks:
traefik_proxy:
external: true
Le container VPN (stack sous portainer) et quelques autres qui passent par le VPN :
version: "2"
services:
vpn:
image: qmcgaw/gluetun:latest
container_name: Gluetun
networks :
- VPN_Gluetun
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
labels:
com.centurylinklabs.watchtower.enable: true #MAJ auto via watchtower
ports:
- 8889:8888/tcp # HTTP proxy
- 8388:8388/tcp # Shadowsocks
- 8388:8388/udp # Shadowsocks
- 6595:6595 #Deemix
- 8998:17442 #YoutubeDL
- 8081:80 #Rutorrent
- 45000:45000 #Rutorrent Data
environment:
- TZ=Europe/Paris
- VPNSP=surfshark
- VPN_TYPE=openvpn
- SERVER_HOSTNAME=fr-bod.prod.surfshark.com
- PUID=1000
- PGID=100
- OPENVPN_USER=User_VPN
- OPENVPN_PASSWORD=Mdp_VPN
volumes:
- /sharedfolders/AppData/Gluetun:/gluetun
restart: unless-stopped
rutorrent:
network_mode: service:vpn
depends_on:
- vpn
image: linuxserver/rutorrent:latest
container_name: Rutorrent
volumes:
- /sharedfolders/SSD:/downloads
- /sharedfolders/AppData/Rutorrent:/config
- /sharedfolders/ZFS:/ZFS
labels:
com.centurylinklabs.watchtower.enable: true #MAJ auto via watchtower
environment:
- PUID=1000
- PGID=100
- TZ=Europe/Paris
restart: unless-stopped
deemix:
network_mode: service:vpn
depends_on:
- vpn
image: registry.gitlab.com/bockiii/deemix-docker
container_name: Deemix
volumes:
- /sharedfolders/SSD:/downloads
- /sharedfolders/AppData/Deemix:/config
labels:
com.centurylinklabs.watchtower.enable: true #MAJ auto via watchtower
environment:
- PUID=1000
- PGID=100
- ARL=Mon_ID
- UMASK_SET=022
- DEEZUI=false
- TZ=Europe/Paris
restart: unless-stopped
Youtube_DL:
container_name: YoutubeDL
environment:
- PUID=1000
- PGID=100
- TZ=Europe/Paris
- ALLOW_CONFIG_MUTATIONS=true
restart: unless-stopped
network_mode: service:vpn
depends_on:
- vpn
labels:
com.centurylinklabs.watchtower.enable: true #MAJ auto via watchtower
volumes:
- /sharedfolders/AppData/Youtube_DL:/app/appdata
- /sharedfolders/SSD/Youtube_DL:/app/audio
- /sharedfolders/SSD/Youtube_DL:/app/video
- /sharedfolders/AppData/Youtube_DL/subscriptions:/app/subscriptions
- /sharedfolders/AppData/Youtube_DL/users:/app/users
image: tzahi12345/youtubedl-material:latest
networks :
VPN_Gluetun :
external: true
Traefik pour la partie revers proxy :
version: "3"
services:
Traefik:
container_name: Traefik
domainname: mondomaine.com
entrypoint:
- /traefik
environment:
- CF_API_EMAIL=monmail@mail.com
- CF_API_KEY=Mon_API_KEY
- PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
hostname: Traefik
image: traefik:v1.7.21
ipc: shareable
labels:
com.docker.compose.oneoff: False
com.docker.compose.project: traefik
com.docker.compose.project.config_files: docker-compose.yml
com.docker.compose.project.working_dir: /sharedfolders/AppData/Traefik
com.docker.compose.service: traefik
com.docker.compose.version: 1.25.4
org.opencontainers.image.description: 'A modern reverse-proxy'
org.opencontainers.image.documentation: https://docs.traefik.io
org.opencontainers.image.title: Traefik
org.opencontainers.image.url: https://traefik.io
org.opencontainers.image.vendor: Containous
org.opencontainers.image.version: v1.7.21
traefik.backend: traefik
traefik.docker.network: traefik_proxy
traefik.enable: true
traefik.frontend.auth.forward.address: http://oauth:4181
'traefik.frontend.auth.forward.authResponseHeaders: X-Forwarded-User': ""
traefik.frontend.auth.forward.trustForwardHeader: true
traefik.frontend.headers.SSLHost: mondomaine.com
traefik.frontend.headers.SSLRedirect: true
traefik.frontend.headers.STSIncludeSubdomains: true
traefik.frontend.headers.STSPreload: true
traefik.frontend.headers.STSSeconds: 315360000
traefik.frontend.headers.browserXSSFilter: true
traefik.frontend.headers.contentTypeNosniff: true
'traefik.frontend.headers.customFrameOptionsValue: allow-from https:modom.com': ""
traefik.frontend.headers.forceSTSHeader: true
traefik.frontend.rule: Host:mondomaine.com
traefik.port: 8080
logging:
driver: json-file
options: {}
networks:
- traefik_proxy
ports:
- 8443:443/tcp
- 88:80/tcp
- 8888:8080/tcp
restart: unless-stopped
volumes:
- /sharedfolders/AppData/Traefik/services.toml:/etc/traefik/services.toml:rw
- /var/run/docker.sock:/var/run/docker.sock:ro
- /sharedfolders/AppData/Traefik/traefik.toml:/etc/traefik/traefik.toml:rw
- /sharedfolders/AppData/Traefik/acme.json:/etc/traefik/acme.json:rw
networks:
traefik_proxy:
external: true
OAuth pour faire une authentification 2FA chez Google :
version: "3"
services:
oauth:
container_name: oauth
entrypoint:
- ./traefik-forward-auth
environment:
- PROVIDERS_GOOGLE_CLIENT_ID=Is_Account
- PROVIDERS_GOOGLE_CLIENT_SECRET=Google_Secret
- SECRET=MonSecret
- COOKIE_DOMAIN=mondomaine.com
- INSECURE_COOKIE=false
- AUTH_HOST=oauth.mondomaine.com
- URL_PATH=/_oauth
- WHITELIST=monmail@mail.com
- LOG_LEVEL=info
- LIFETIME=2592000
- TZ=Europe/Paris
- PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
hostname: oauth
image: thomseddon/traefik-forward-auth
ipc: shareable
labels:
com.docker.compose.container-number: 1
com.docker.compose.oneoff: False
com.docker.compose.project: oauth
com.docker.compose.project.config_files: docker-compose.yml
com.docker.compose.project.working_dir: /sharedfolders/AppData/OAuth
com.docker.compose.service: oauth
com.docker.compose.version: 1.25.4
traefik.backend: oauth
traefik.docker.network: traefik_proxy
traefik.enable: true
traefik.frontend.auth.forward.address: http://oauth:4181
traefik.frontend.auth.forward.authResponseHeaders: X-Forwarded-User
traefik.frontend.auth.forward.trustForwardHeader: true
traefik.frontend.headers.SSLForceHost: true
traefik.frontend.headers.SSLHost: oauth.mondomaine.com
traefik.frontend.headers.SSLRedirect: true
traefik.frontend.headers.STSIncludeSubdomains: true
traefik.frontend.headers.STSPreload: true
traefik.frontend.headers.STSSeconds: 315360000
traefik.frontend.headers.browserXSSFilter: true
traefik.frontend.headers.contentTypeNosniff: true
traefik.frontend.headers.customResponseHeaders: X-Robots-Tag:noindex,nofollow,nosnippet,noarchive,notranslate,noimageindex
traefik.frontend.headers.forceSTSHeader: true
traefik.frontend.headers.frameDeny: true
traefik.frontend.passHostHeader: true
traefik.frontend.rule: Host:oauth.mondomaine.com
traefik.port: 4181
logging:
driver: json-file
options: {}
networks:
- traefik_proxy
restart: unless-stopped
networks:
traefik_proxy:
external: true
C’est sans doute loin d’être parfait car je débute dans la partie container mais cela fonctionne pour le moment
J’ai également un container AdGuardHome, TeamSpeak, BitwardenRS et Watchtower pour les MAJ auto des containers.
Vous pourriez compiler tous ces fichiers dans un seul docker-compose !
Salut.
Oui mais l’impact n’est pas neutre. Le up ou le down concernera alors toute la stack…
Pas certain par exemple que le vpn doive être manipulé comme ha
4 messages ont été scindés en un nouveau sujet : Attribuer une @ip fixe à un container
Bonjour,
Mes containers sont en ligne de commande…
Homeassistant :
La commande, avec un volume pour lire les fichiers média (mais peut-être pas bien utile puisque je n’ai pas trouvé de lecteur avec HA container ?).
docker run -d \
--name homeassistant \
--privileged \
--restart=unless-stopped \
-e TZ=Europe/Paris \
-v /home/pi/.config/homeassistant:/config \
-v /var/lib/docker/volumes/Media:/media \
--network=host \
ghcr.io/home-assistant/raspberrypi4-homeassistant:stable
Rhasspy
LA raison d’être de mon installation HA, du RPi… A mettre sur le réseaux bridge
Permet la lecture d’un fichier wave déclenché par une automation HA
docker run -p 12101:12101 \
-v "$HOME/.config/rhasspy/profiles:/profiles" \
-v "/etc/localtime:/etc/localtime:ro" \
-d --restart unless-stopped \
-v /var/lib/docker/volumes/Media/_data:/profiles/Media \
--device /dev/snd:/dev/snd \
--name rhasspy \
rhasspy/rhasspy \
--user-profiles /profiles \
--profile fr
Zwave
docker run -d --restart=unless-stopped --name zwavejs2mqtt --privileged --network=host -p 8091:8091 -p 3000:3000 -e TZ=Europe/Paris --device=/dev/serial/by-id/usb-0658_0200-if00:/dev/zwave -v /opt/zwavejs2mqtt:/usr/src/app/store zwavejs/zwavejs2mqtt:latest
Mosquitto
docker create --name MQTT -p 1883:1883 -p 9001:9001 -v
/opt/mosquitto/config:/mosquitto/config -v
/opt/mosquitto/data:/mosquitto/data -v /opt/mosquitto/log:/mosquitto/log
--net=bridge --restart always eclipse-mosquitto
EDIT : mise à jour du container Rhasspy pour lancer la lecture d’un fichier wave avec aplay (je n’ai pas trouvé comment faire sur HA container)
Hello,
Pouvez-vous me donner la commande pour installer InfluxDB2.X sans docker-compose?
J’ai l’habitude d’installer les fichiers sur mon nas du type: volume1/docker/influxdb
Mais pour influx, j’ai l’impression que cela fonctionne pas, il se reset lors des maj…
Merci d’avance.
[quote=« Clemalex, post:1, topic:5980 »]
homeassistant:
container_name: homeassistant
image: homeassistant/raspberrypi4-homeassistant:2021.7.1
volumes:
- /home/homeassistant/config:/config
- /etc/localtime:/etc/localtime:ro
- /media/nas:/media
restart: unless-stopped
network_mode: host
salut , j’ai voullus installée t’on docker-compose et je me retrouve avec cette erreur
/usr/local/lib/python3.9/dist-packages/paramiko/transport.py:236: CryptographyDeprecationWarning: Blowfish has been deprecated "class": algorithms.Blowfish, ERROR: The Compose file './docker-compose.yml' is invalid because: Unsupported config option for homeassistant: 'network_mode'
pour info je suis sur un rpi 4 avec debian 64 .
Ca date un peu !!!
Pourquoi monter une image de juillet 2021?
Essayes avec l’exemple contenu dans la doc officielle.
salut , j’ai teste les choses, j’ai proxmox avec une vm avec ha de prod
Regarde par là.
La version de compose que j’utilise est la 3.
Sinon, regarde la documentation :
Désolé mais rien compris à ta réponse.