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 »