Site personnel courcellematthi.eu
This commit is contained in:
@@ -0,0 +1,96 @@
|
||||
# =============================================================================
|
||||
# docker-compose.yaml — Déploiement Coolify
|
||||
# -----------------------------------------------------------------------------
|
||||
# Utiliser ce fichier UNIQUEMENT si le déploiement Coolify est configuré en
|
||||
# type « Docker Compose ». En type « Dockerfile », Coolify génère lui-même la
|
||||
# configuration et ce fichier est ignoré.
|
||||
#
|
||||
# Voir DEPLOIEMENT-COOLIFY.md pour le choix entre les deux méthodes.
|
||||
# =============================================================================
|
||||
|
||||
services:
|
||||
site:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
|
||||
# Redémarrage automatique après un reboot du serveur ou un plantage.
|
||||
restart: unless-stopped
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# RÉSEAUX
|
||||
# -------------------------------------------------------------------------
|
||||
# Le réseau « coolify » est celui où vit Traefik. Un conteneur qui n'y est
|
||||
# pas rattaché est invisible pour le reverse proxy : Traefik affiche alors
|
||||
# une 404, alors que le conteneur tourne parfaitement.
|
||||
#
|
||||
# C'est la panne la plus fréquente sur Coolify, et elle est trompeuse
|
||||
# parce que les journaux du conteneur sont vides — la requête ne
|
||||
# l'atteint jamais.
|
||||
networks:
|
||||
- coolify
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# ÉTIQUETTES TRAEFIK
|
||||
# -------------------------------------------------------------------------
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
|
||||
# --- Routeur HTTPS ---
|
||||
- traefik.http.routers.courcellematthi.rule=Host(`www.courcellematthi.eu`)
|
||||
- traefik.http.routers.courcellematthi.entrypoints=https
|
||||
- traefik.http.routers.courcellematthi.tls=true
|
||||
- traefik.http.routers.courcellematthi.tls.certresolver=letsencrypt
|
||||
- traefik.http.routers.courcellematthi.service=courcellematthi
|
||||
|
||||
# --- Port du service ---
|
||||
# DÉCLARATION OBLIGATOIRE. Traefik ne devine le port que si le conteneur
|
||||
# n'en expose qu'un seul, et cette détection échoue régulièrement.
|
||||
# Sans cette ligne : « 502 Bad Gateway » ou « service not found ».
|
||||
- traefik.http.services.courcellematthi.loadbalancer.server.port=80
|
||||
|
||||
# --- Redirection du domaine nu vers www ---
|
||||
# Doit correspondre au rel="canonical" du HTML, sous peine de contenu
|
||||
# dupliqué aux yeux des moteurs de recherche.
|
||||
- traefik.http.routers.courcellematthi-apex.rule=Host(`courcellematthi.eu`)
|
||||
- traefik.http.routers.courcellematthi-apex.entrypoints=https
|
||||
- traefik.http.routers.courcellematthi-apex.tls=true
|
||||
- traefik.http.routers.courcellematthi-apex.tls.certresolver=letsencrypt
|
||||
- traefik.http.routers.courcellematthi-apex.middlewares=courcellematthi-towww
|
||||
- traefik.http.routers.courcellematthi-apex.service=courcellematthi
|
||||
- traefik.http.middlewares.courcellematthi-towww.redirectregex.regex=^https://courcellematthi\.eu/(.*)
|
||||
- traefik.http.middlewares.courcellematthi-towww.redirectregex.replacement=https://www.courcellematthi.eu/$${1}
|
||||
- traefik.http.middlewares.courcellematthi-towww.redirectregex.permanent=true
|
||||
|
||||
# --- HSTS ---
|
||||
# Émis par Traefik, qui termine le TLS, et non par Nginx dans le conteneur.
|
||||
#
|
||||
# ATTENTION : à n'activer qu'une fois le HTTPS confirmé fonctionnel.
|
||||
# Un HSTS émis par erreur rend le domaine inaccessible en HTTP pendant
|
||||
# deux ans côté navigateur, sans possibilité d'annulation serveur.
|
||||
# Commencer avec max-age=300 pour valider, puis passer à 63072000.
|
||||
- traefik.http.routers.courcellematthi.middlewares=courcellematthi-hsts
|
||||
- traefik.http.middlewares.courcellematthi-hsts.headers.stsSeconds=300
|
||||
- traefik.http.middlewares.courcellematthi-hsts.headers.stsIncludeSubdomains=true
|
||||
- traefik.http.middlewares.courcellematthi-hsts.headers.stsPreload=true
|
||||
- traefik.http.middlewares.courcellematthi-hsts.headers.forceSTSHeader=true
|
||||
|
||||
# -------------------------------------------------------------------------
|
||||
# SONDE DE SANTÉ
|
||||
# Redondante avec celle du Dockerfile, mais explicite ici pour que l'état
|
||||
# remonte correctement dans l'interface Coolify.
|
||||
# -------------------------------------------------------------------------
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost/healthz"]
|
||||
interval: 30s
|
||||
timeout: 3s
|
||||
retries: 3
|
||||
start_period: 5s
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Le réseau « coolify » est créé par Coolify lui-même : on le déclare externe
|
||||
# pour s'y rattacher sans tenter de le recréer.
|
||||
# -----------------------------------------------------------------------------
|
||||
networks:
|
||||
coolify:
|
||||
external: true
|
||||
Reference in New Issue
Block a user