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.
je te disais que je test docker sur rpi
Je te montre un fichier docker-compose fonctionnel :
version: "2.1"
services:
duplicati:
image: lscr.io/linuxserver/duplicati:latest
container_name: duplicati
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/London
- CLI_ARGS= #optional
volumes:
- </path/to/appdata/config>:/config
- </path/to/backups>:/backups
- </path/to/source>:/source
ports:
- 8200:8200
Il te manque deux variables pour que le fichier fonctionne correctement : le numéro de version du fichier docker-compose utilisé, et la ligne service.
salut dans t’est docker compose tu a un ligle Labels: ca veut dire quoi et ca ser a quoi?
J’utilise le label principalement pour traefik.
Bonjour à tous,
Depuis que mon RPi a détesté une disjonction, j’essaie de passer mon installation de HA sur un Docker hébergé sur une machine plus puissante.
Lorsque je lance les 2 briques z2m et mosquitto, suite à un appairage, j’arrive à piloter mes lampes Traedfri mais dés que j’ajoute HA et la modification dans la config de z2m, impossible de piloter mes lampes.
Voici les 3 docker compose :
Le broker Mosquitto
version: "3.9"
# https://hub.docker.com/_/eclipse-mosquitto
services:
broker:
image: eclipse-mosquitto:latest
container_name: broker
user: 0:0
environment:
- TZ=Europe/Paris
ports:
- 1883:1883
- 9001:9001
volumes:
- '/home/.../domotic/broker/config:/mosquitto/config'
- '/home/.../domotic/broker/data:/mosquitto/data'
- '/home/.../domotic/broker/log:/mosquitto/log'
networks:
- domotic-network
networks:
domotic-network:
external: true
zigbee2mqtt
version: "3.9"
services:
zigbee2mqtt:
image: koenkk/zigbee2mqtt:1.28.0
container_name: zigbee2mqtt
user: 0:0
environment:
- TZ=Europe/Paris
ports:
- 8080:8080
volumes:
- '/home/.../domotic/zigbee2mqtt/data:/app/data'
devices:
- /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_...-port0:/dev/ttyACM0
networks:
- domotic-network
networks:
domotic-network:
external: true
Home Assistant
version: "3.9"
services:
homeassistant:
image: homeassistant/home-assistant:2022.10.3
container_name: homeassistant
environment:
- TZ=Europe/Paris
ports:
- 8123:8123
volumes:
- '/home/sylvain/Docker/domotic/homeassistant/config:/config'
networks:
- domotic-network
networks:
domotic-network:
external: true
Et la configuration de zigbee2mqtt
permit_join: true
mqtt:
base_topic: zigbee2mqtt
server: mqtt://broker:1883
user: '!secret user'
password: '!secret password'
discovery_prefix: homeassistant
serial:
port: /dev/ttyACM0
frontend:
port: 8080
devices: devices.yaml
advanced:
log_level: debug
homeassistant:
status_topic: homeassistant/status
Et voici les logs de z2m :
Zigbee2MQTT:debug 2022-10-15 19:18:20: Received MQTT message on 'zigbee2mqtt/ikea_400lm_cellier_porte/set' with data '{"state":"OFF"}'
Zigbee2MQTT:debug 2022-10-15 19:18:20: Publishing 'set' 'state' to 'ikea_400lm_cellier_porte'
Zigbee2MQTT:error 2022-10-15 19:18:37: Publish 'set' 'state' to 'ikea_400lm_cellier_porte' failed: 'Error: Command 0xbc33acfffed4f228/1 genOnOff.off({}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Data request failed with error: 'MAC no ack' (233))'
Zigbee2MQTT:debug 2022-10-15 19:18:37: Error: Command 0xbc33acfffed4f228/1 genOnOff.off({}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Data request failed with error: 'MAC no ack' (233))
at ZStackAdapter.sendZclFrameToEndpointInternal (/app/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/zStackAdapter.ts:415:23)
at Queue.executeNext (/app/node_modules/zigbee-herdsman/src/utils/queue.ts:32:32)
Zigbee2MQTT:info 2022-10-15 19:18:37: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Publish 'set' 'state' to 'ikea_400lm_cellier_porte' failed: 'Error: Command 0xbc33acfffed4f228/1 genOnOff.off({}, {\"sendWhen\":\"immediate\",\"timeout\":10000,\"disableResponse\":false,\"disableRecovery\":false,\"disableDefaultResponse\":false,\"direction\":0,\"srcEndpoint\":null,\"reservedBits\":0,\"manufacturerCode\":null,\"transactionSequenceNumber\":null,\"writeUndiv\":false}) failed (Data request failed with error: 'MAC no ack' (233))'","meta":{"friendly_name":"ikea_400lm_cellier_porte"},"type":"zigbee_publish_error"}'
J’ai l’impression que les topics entre Z2M et HA ne sont pas corrects …
edit :
Voici la configuration de zigbee2mqtt qui fonctionne :
la nouvelle configuration de zigbee2mqtt
permit_join: true
mqtt:
server: mqtt://broker:1883
user: '!secret user'
password: '!secret password'
serial:
port: /dev/ttyACM0
frontend:
port: 8080
devices: devices.yaml
advanced:
log_level: debug
homeassistant: true
Il fallait apparemment laisser z2m géré les topics via l’attribut homeassistant: true
Si ça peut aider !!
11 messages ont été scindés en un nouveau sujet : Problème de compréhension dans l’utilisation de Docker
Après quelques jours de productions et quelques nuits blanches de plus :
voici la mise à jour de mes dockers.
Portainer
portainer:
container_name: portainer
image: portainer/portainer-ce:latest
environment:
- TZ=Europe/Paris
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./portainer:/data
- /etc/localtime:/etc/localtime:ro
ports:
- "9000:9000/tcp"
- "9443:9443/tcp"
restart: unless-stopped
Docker Proxy
dockerproxy:
container_name: dockerproxy
image: tecnativa/docker-socket-proxy:latest
environment:
- TZ=Europe/Paris
- BUILD=1
- COMMIT=1
- CONFIGS=1
- CONTAINERS=1
- DISTRIBUTION=1
- EXEC=1
- IMAGES=1
- INFO=1
- NETWORKS=1
- NODES=1
- PLUGINS=1
- SERVICES=1
- SESSSION=1
- SWARM=1
- SYSTEM=1
- TASKS=1
- VOLUMES=1
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- "2375:2375/tcp"
privileged: true
restart: unless-stopped
Home Assitant
homeassistant:
container_name: homeassistant
image: homeassistant/home-assistant:latest
environment:
- TZ=Europe/Paris
volumes:
- ./homeassistant:/config:rw
- /etc/localtime:/etc/localtime:ro
- /media:/media:rw
# - /run/dbus:/run/dbus:ro # <-- Bluetooth adapter
ports:
- "8123:8123/tcp"
healthcheck:
test: ["CMD", "curl", "-f", "http://${SERVER_IP}:8123/"]
interval: 25s
timeout: 3s
start_period: 30s
devices:
- /dev/ttyUSB0:/dev/ttyUSB0
privileged: true
network_mode: host
restart: unless-stopped
depends_on:
- mariadb
- influxdb
- mosquitto
labels:
- "com.centurylinklabs.watchtower.enable=false"
- Pour un adaptateur Bluetooth
Install DBus-broker package sudo apt install dbus-broker
Enable system service sudo systemctl enable dbus-broker.service
Install BlueZ package sudo apt install bluez
DuckDNS - Update IP to DNS
duckdns:
image: linuxserver/duckdns:latest
container_name: duckdns
environment:
- TZ=Europe/Paris
- SUBDOMAINS=${DUCKDNS_DOMAIN}
- TOKEN=${DUCKDNS_TOKEN}
- Me reste à mettre au point le « Cerbot DNS DuckDNS » → Pas besoin Cf Message suivant !
Nginx Proxy Manager
nginx:
container_name: nginx
image: 'jc21/nginx-proxy-manager:latest'
environment:
DB_MYSQL_HOST: ${SERVER_IP}
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: ${MYSQL_HA_USER}
DB_MYSQL_PASSWORD: ${MYSQL_HA_PASSWORD}
DB_MYSQL_NAME: ${MYSQL_NGINX_DATABASE}
DISABLE_IPV6: true
volumes:
- ./nginx/data:/data
- ./nginx/letsencrypt:/etc/letsencrypt
- ./nginx/config:/app/config
# - ./nginx/log:/var/log/nginx
# - ./nginx/custom:/data/nginx/custom
ports:
- "80:80/tcp" # Public HTTP Port
- "443:443/tcp" # Public HTTPS Port
- "81:81/tcp" # Admin Web Port
# - "21:21/tcp" # FTP
healthcheck:
test: ["CMD", "/bin/check-health"]
interval: 10s
timeout: 3s
restart: unless-stopped
depends_on:
- mariadb
MariaDB
mariadb:
container_name: mariadb
image: jc21/mariadb-aria:latest
environment:
- TZ=Europe/Paris
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_DATABASE=${MYSQL_HA_DATABASE}
- MYSQL_USER=${MYSQL_HA_USER}
- MYSQL_PASSWORD=${MYSQL_HA_PASSWORD}
volumes:
- ./mariadb/data:/var/lib/mysql:rw
- ./mariadb/config:/etc/mysql:rw
ports:
- "3306:3306/tcp"
restart: unless-stopped
labels:
- "com.centurylinklabs.watchtower.enable=false"
PHP MyAdmin
phpmyadmin:
container_name: phpmyadmin
image: phpmyadmin:latest
environment:
- PMA_ARBITRARY=1
- PMA_HOST=${SERVER_IP}
- PMA_USER=${MYSQL_HA_USER}
- PMA_PASSWORD=${MYSQL_HA_PASSWORD}
volumes:
- /sessions
ports:
- "8080:80/tcp"
restart: unless-stopped
depends_on:
- mariadb
InfluxDB V2
influxdb:
container_name: influxdb
image: influxdb:latest
environment:
- TZ=Europe/Paris
- DOCKER_INFLUXDB_INIT_MODE=setup
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=${INFLUX_ADMIN_TOKEN}
- DOCKER_INFLUXDB_INIT_USERNAME=${INFLUXDB_USER}
- DOCKER_INFLUXDB_INIT_PASSWORD=${INFLUXDB_PASSWORD}
- DOCKER_INFLUXDB_INIT_ORG=${INFLUXDB_ORG}
- DOCKER_INFLUXDB_INIT_BUCKET=${INFLUXDB_BUCKET}
- DOCKER_INFLUXDB_INIT_RETENTION=0s
volumes:
- ./influxdb2/data:/var/lib/influxdb2
- ./influxdb2/config/config.yml:/etc/influxdb2/config.yml:rw
# - ./influxdb2/scripts:/docker-entrypoint-initdb.d
ports:
- "8086:8086/tcp"
restart: unless-stopped
- Pour créer le fichier de configuration
docker run --rm influxdb influxd print-config > influxdb/config.yml
Telegraf
telegraf:
container_name: telegraf
image: telegraf
environment:
- TZ=Europe/Paris
# - HOST_PROC=/rootfs/proc
# - HOST_SYS=/rootfs/sys
# - HOST_ETC=/rootfs/etc
volumes:
- /var/run/docker.sock:/var/run/docker.sock:rw
- ./telegraf/telegraf.conf:/etc/telegraf/telegraf.conf:rw
ports:
- "6514:6514/tcp"
restart: unless-stopped
tty: true
links:
- influxdb:influxdb
depends_on:
- influxdb```
- Pour créer le fichier de configuration
docker run --rm telegraf telegraf config > telegraf/telegraf.conf
Grafana
grafana:
container_name: grafana
image: grafana/grafana:latest
environment:
- TZ=Europe/Paris
- GF_RENDERING_SERVER_URL=http://${SERVER_IP}:8081/render
- GF_RENDERING_CALLBACK_URL=http://${SERVER_IP}:3000
- GF_LOG_FILTERS="rendering=debug"
- GF_SECURITY_ADMIN_USER=${GRAFANA_USER}
- GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
ports:
- "3000:3000/tcp"
restart: unless-stopped
links:
- influxdb:influxdb
depends_on:
- influxdb
- renderer
Renderer
renderer:
container_name: renderer
image: grafana/grafana-image-renderer:latest
environment:
ENABLE_METRICS: 'true'
ports:
- "8081:8081/tcp"
restart: unless-stopped
Mosquitto
mosquitto:
container_name: mosquitto
image: eclipse-mosquitto:latest
environment:
- TZ=Europe/Paris
volumes:
- ./mosquitto/config:/mosquitto/config:rw
- ./mosquitto/data:/mosquitto/data:rw
- ./mosquitto/log:/mosquitto/log:rw
ports:
- "1883:1883/tcp"
restart: unless-stopped
stdin_open: true
tty: true
ESPHome
esphome:
container_name: esphome
image: esphome/esphome:latest
environment:
- TZ=Europe/Paris
volumes:
- ./esphome:/config:rw
- /etc/localtime:/etc/localtime:ro
ports:
- "6052:6052/tcp"
#devices:
# - /dev/ttyUSB1:/dev/ttyUSB1
restart: unless-stopped
network_mode: host
Samba Share
samba:
container_name: samba
image: elswork/samba:latest
command: '-s "<rep mappé>:/<rep mappé>rw:<user>" -u "1000:1000:<user>:<group>:<mdp>"'
environment:
- TZ="Europe/Paris"
volumes:
- /<rep des docker>:/<rep mappé>
ports:
- "139:139/tcp"
- "445:445/tcp"
restart: unless-stopped
MyElectricalData
myelectricaldata:
container_name: myelectricaldata
image: m4dm4rtig4n/myelectricaldata:latest
environment:
TZ: Europe/Paris
volumes:
- ./myelectricaldata:/data:rw
ports:
- "5000:5000/tcp"
restart: unless-stopped
links:
- influxdb
- mosquitto
VsCode
vscode:
container_name: vscode
image: codercom/code-server:latest
environment:
TZ: Europe/Paris
PASSWORD: ${VSCODE_PASSWORD}
volumes:
-<rep des docker>:/<rep mappé>
- ./vscode:/home/coder/.local/share/code-server
ports:
- "8443:8443/tcp"
command: code-server --auth none --disable-telemetry /home/coder/project
restart: unless-stopped
Watchower
watchtower:
image: containrrr/watchtower:latest
container_name: watchtower
environment:
- TZ=Europe/Paris
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_LOG_LEVEL=trace
- WATCHTOWER_TIMEOUT=30s
- WATCHTOWER_ROLLING_RESTART=true
- WATCHTOWER_SCHEDULE=0 0 5 * * *
volumes:
- /var/run/docker.sock:/var/run/docker.sock
labels:
- « com.centurylinklabs.watchtower.enable=true »
restart: unless-stopped
- Rajouter dans les dockers à ne pas mettre à jour automatiquement :
labels:
- « com.centurylinklabs.watchtower.enable=false »
Mise à jour des composes dans le message précédant
Je n’arrive pas à trouver l’information sur le net, mais faut il un cert_bot avec Nginx pour renouveler les certificats ?
si oui, auriez vous un exemple de compose pour se faire ?
J’ai trouvé la réponse pour les curieux c’est :
Free SSL
Built in Let’s Encrypt support allows you to secure your Web services at no cost to you. The certificates even renew themselves!
Une solution parmi plusieurs. Tu peux tout à fait te limiter à avoir un simple container certbot et un tout aussi simple container ngnix. Il y a aussi d,autres solutions tout en une comme traefik.
Par ailleurs Npm a également besoin, en plus, d’une base mariadb
pas forcément besoin d’une BDD mariadb. Il existe une install sans BDD.
Bjr Stef , par contre si tu a un exemple concret à me fournir je suis trop en galère avec nginx.
Merci
Salut @Ricou , tu peux créer un nouveau sujet pour éviter de s’écarter du sujet de base.
Tu as un exemple de docker NGINX dans plusieurs post de ce thread.
Donne le lien de ton nouveau sujet .
Merci
Bonne année 2023 à vous tous et à vos familles respectives !!
Je suis en train de configurer mes docker-compose pour que Watchtower puisse en mettre certains à jour automatiquement et que je puisse recevoir des notifications pour d’autres.
Ce qui fonctionne actuellement :
j’arrive à mettre à jour les containers dans lesquels j’ai spécifié la mise à jour via le label :
...
labels:
- "com.centurylinklabs.watchtower.enable=true"
...
et je reçois bien une notification par mail de sa mise à jour.
Ce qui ne fonctionne pas :
je n’arrive pas à voir dans les logs ni recevoir de notifications par mail d’une nouvelle version d’un containers qui a son docker-compose comme ceci :
...
labels:
- "com.centurylinklabs.watchtower.monitor-only=true"
...
Je me pose la question (et la doc de Watchtower à ce sujet n’est pas très claire ) s’il est nécessaire d’ajouter le label - "com.centurylinklabs.watchtower.enable=true"
en plus du "com.centurylinklabs.watchtower.monitor-only=true"
pour uniquement monitorer ce container ?
Mon but est de mettre à jour manuellement uniquement certaines application qui peuvent poser problème, par exemple, HA, suite à la lecture de leur changelog.
Voici mon docker-compose de Watchtower :
version: "3.9"
# https://containrrr.dev/watchtower/
# https://www.nas-forum.com/forum/topic/63740-tuto-mise-%C3%A0-jour-automatique-des-images-et-conteneurs-docker/
services:
watchtower:
image: containrrr/watchtower
container_name: watchtower
restart: unless-stopped
user: 0:0
environment:
- TZ=Europe/Paris
- WATCHTOWER_LABEL_ENABLE=true
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_SCHEDULE=0 7 2 * * *
- WATCHTOWER_NOTIFICATIONS=email
- WATCHTOWER_NOTIFICATION_EMAIL_FROM=xxxxxxxx@xxxxx.xxx
- WATCHTOWER_NOTIFICATION_EMAIL_TO=xxxxxxxx@xxxxx.xxx
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.xxxxx.xxx
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=xxx
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=xxxxxxxx@xxxxx.xxx
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=xxxxxxxx
- WATCHTOWER_NOTIFICATION_EMAIL_DELAY=2
labels:
- "com.centurylinklabs.watchtower.enable=true"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /home/xxx/Docker/watchtower/config/config.json:/config.json