Commit 73a488

2025-12-26 13:19:54 Cédric: -/-
/dev/null .. les indispensables en lab.md
@@ 0,0 1,118 @@
+ # Les indispensables en Lab
+
+ Voici le docker compose des indispensables en Lab et la source de l'article vBlog correspondant :
+ https://vblog.io/kumatraefik/
+
+ ```shell
+ services:
+ # Traefik - avec Let's Encrypt
+ traefik:
+ image: traefik:v3
+ container_name: traefik
+ restart: unless-stopped
+ command:
+ - "--providers.docker=true"
+ - "--providers.docker.exposedbydefault=false"
+ - "--entrypoints.web.address=:80"
+ - "--entrypoints.websecure.address=:443"
+ - "--certificatesresolvers.ovh-resolver.acme.dnschallenge=true"
+ - "--certificatesresolvers.ovh-resolver.acme.dnschallenge.provider=ovh"
+ - "--certificatesresolvers.ovh-resolver.acme.email=${EMAIL}"
+ - "--certificatesresolvers.ovh-resolver.acme.storage=/certs/acme.json"
+ ports:
+ - "80:80"
+ - "443:443"
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock:ro
+ - "./certs:/certs"
+ env_file:
+ - .env
+ networks:
+ - traefik-net
+
+ # Dozzle
+ dozzle:
+ image: amir20/dozzle:latest
+ container_name: dozzle
+ restart: unless-stopped
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.routers.dozzle.rule=Host(dozzle.myvlab.ovh)"
+ - "traefik.http.routers.dozzle.entrypoints=websecure"
+ - "traefik.http.routers.dozzle.tls.certresolver=ovh-resolver"
+ - "traefik.http.services.dozzle.loadbalancer.server.port=8080"
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock
+ environment:
+ - DOZZLE_REMOTE_AGENT=hostXXXXX:7007, hostYYYYY:7007
+ - TZ=Europe/Paris
+ networks:
+ - traefik-net
+
+ # Uptime Kuma
+ uptime-kuma:
+ image: louislam/uptime-kuma:latest
+ container_name: uptime-kuma
+ restart: unless-stopped
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.routers.uptime-kuma.rule=Host(uptime.myvlab.ovh)"
+ - "traefik.http.routers.uptime-kuma.entrypoints=websecure"
+ - "traefik.http.routers.uptime-kuma.tls.certresolver=ovh-resolver"
+ - "traefik.http.services.uptime-kuma.loadbalancer.server.port=3001"
+ volumes:
+ - ./uptime-kuma:/app/data
+ networks:
+ - traefik-net
+
+ # IT-Tools
+ it-tools:
+ image: corentinth/it-tools:latest
+ container_name: it-tools
+ restart: unless-stopped
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.routers.it-tools.rule=Host(it-tools.myvlab.ovh)"
+ - "traefik.http.routers.it-tools.entrypoints=websecure"
+ - "traefik.http.routers.it-tools.tls.certresolver=ovh-resolver"
+ - "traefik.http.services.it-tools.loadbalancer.server.port=80"
+ networks:
+ - traefik-net
+
+ # ConvertX
+ convertx:
+ image: ghcr.io/c4illin/convertx
+ container_name: convertx
+ restart: unless-stopped
+ ports:
+ - "3400:3000"
+ environment:
+ - JWT_SECRET=xxxxxxxxx # will use randomUUID() if unset
+ - HTTP_ALLOWED=true # uncomment this if accessing it over a non-https connection
+ volumes:
+ - ./data:/app/data
+ labels:
+ - "traefik.enable=true"
+ - "traefik.http.routers.convertx.rule=Host(convertx.myvlab.ovh)"
+ - "traefik.http.routers.convertx.entrypoints=websecure"
+ - "traefik.http.routers.convertx.tls.certresolver=ovh-resolver"
+ - "traefik.http.services.convertx.loadbalancer.server.port=80"
+ networks:
+ - traefik-net
+
+ networks:
+ traefik-net:
+ external: false
+ ```
+
+ Le fichier .env du docker-compose :
+ ```text
+ # OVH API
+ OVH_ENDPOINT=ovh-eu
+ OVH_APPLICATION_KEY=xxxxxxxxxxxxx
+ OVH_APPLICATION_SECRET=xxxxxxxxxxxxx
+ OVH_CONSUMER_KEY=xxxxxxxxxxxxx
+
+ # Email pour Let's Encrypt
+ EMAIL=cedric@vblog.io
+ ```
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9