Blame

73a488 Cédric 2025-12-26 13:19:54 1
# Les indispensables en Lab
2
3
Voici le docker compose des indispensables en Lab et la source de l'article vBlog correspondant :
4
https://vblog.io/kumatraefik/
5
6
```shell
7
services:
8
# Traefik - avec Let's Encrypt
9
traefik:
10
image: traefik:v3
11
container_name: traefik
12
restart: unless-stopped
13
command:
14
- "--providers.docker=true"
15
- "--providers.docker.exposedbydefault=false"
16
- "--entrypoints.web.address=:80"
17
- "--entrypoints.websecure.address=:443"
18
- "--certificatesresolvers.ovh-resolver.acme.dnschallenge=true"
19
- "--certificatesresolvers.ovh-resolver.acme.dnschallenge.provider=ovh"
20
- "--certificatesresolvers.ovh-resolver.acme.email=${EMAIL}"
21
- "--certificatesresolvers.ovh-resolver.acme.storage=/certs/acme.json"
22
ports:
23
- "80:80"
24
- "443:443"
25
volumes:
26
- /var/run/docker.sock:/var/run/docker.sock:ro
27
- "./certs:/certs"
28
env_file:
29
- .env
30
networks:
31
- traefik-net
32
33
# Dozzle
34
dozzle:
35
image: amir20/dozzle:latest
36
container_name: dozzle
37
restart: unless-stopped
38
labels:
39
- "traefik.enable=true"
40
- "traefik.http.routers.dozzle.rule=Host(dozzle.myvlab.ovh)"
41
- "traefik.http.routers.dozzle.entrypoints=websecure"
42
- "traefik.http.routers.dozzle.tls.certresolver=ovh-resolver"
43
- "traefik.http.services.dozzle.loadbalancer.server.port=8080"
44
volumes:
45
- /var/run/docker.sock:/var/run/docker.sock
46
environment:
47
- DOZZLE_REMOTE_AGENT=hostXXXXX:7007, hostYYYYY:7007
48
- TZ=Europe/Paris
49
networks:
50
- traefik-net
51
52
# Uptime Kuma
53
uptime-kuma:
54
image: louislam/uptime-kuma:latest
55
container_name: uptime-kuma
56
restart: unless-stopped
57
labels:
58
- "traefik.enable=true"
59
- "traefik.http.routers.uptime-kuma.rule=Host(uptime.myvlab.ovh)"
60
- "traefik.http.routers.uptime-kuma.entrypoints=websecure"
61
- "traefik.http.routers.uptime-kuma.tls.certresolver=ovh-resolver"
62
- "traefik.http.services.uptime-kuma.loadbalancer.server.port=3001"
63
volumes:
64
- ./uptime-kuma:/app/data
65
networks:
66
- traefik-net
67
68
# IT-Tools
69
it-tools:
70
image: corentinth/it-tools:latest
71
container_name: it-tools
72
restart: unless-stopped
73
labels:
74
- "traefik.enable=true"
75
- "traefik.http.routers.it-tools.rule=Host(it-tools.myvlab.ovh)"
76
- "traefik.http.routers.it-tools.entrypoints=websecure"
77
- "traefik.http.routers.it-tools.tls.certresolver=ovh-resolver"
78
- "traefik.http.services.it-tools.loadbalancer.server.port=80"
79
networks:
80
- traefik-net
81
82
# ConvertX
83
convertx:
84
image: ghcr.io/c4illin/convertx
85
container_name: convertx
86
restart: unless-stopped
87
ports:
88
- "3400:3000"
89
environment:
90
- JWT_SECRET=xxxxxxxxx # will use randomUUID() if unset
91
- HTTP_ALLOWED=true # uncomment this if accessing it over a non-https connection
92
volumes:
93
- ./data:/app/data
94
labels:
95
- "traefik.enable=true"
96
- "traefik.http.routers.convertx.rule=Host(convertx.myvlab.ovh)"
97
- "traefik.http.routers.convertx.entrypoints=websecure"
98
- "traefik.http.routers.convertx.tls.certresolver=ovh-resolver"
99
- "traefik.http.services.convertx.loadbalancer.server.port=80"
100
networks:
101
- traefik-net
102
103
networks:
104
traefik-net:
105
external: false
106
```
107
108
Le fichier .env du docker-compose :
109
```text
110
# OVH API
111
OVH_ENDPOINT=ovh-eu
112
OVH_APPLICATION_KEY=xxxxxxxxxxxxx
113
OVH_APPLICATION_SECRET=xxxxxxxxxxxxx
114
OVH_CONSUMER_KEY=xxxxxxxxxxxxx
115
116
# Email pour Let's Encrypt
117
EMAIL=cedric@vblog.io
118
```