Aller au contenu
Sylvain Joffraud l4w
Retour

Coolify + Apache front TLS : le certresolver fait du 502

J’ai monté un CouchDB sur Coolify (Docker Compose Empty) pour ma sync Obsidian LiveSync. Archi : Apache devant termine le TLS (cert Let’s Encrypt via Terraform DNS-01 OVH), ProxyPass vers le Traefik de Coolify qui route par Host vers le container. Pattern Supabase déjà éprouvé.

Sauf que https://bro.example.com/ renvoie 502 Bad Gateway alors que le container est healthy.

Symptôme

Mais de l’extérieur (ou via Apache) : 502.

Cause

La magic var SERVICE_FQDN_<SERVICE>_<PORT>=https://bro.example.com génère automatiquement :

...couchdb.rule=Host(`bro.example.com`) && PathPrefix(`/`)
...couchdb.tls=true
...couchdb.tls.certresolver=letsencrypt

Coolify dit à Traefik d’obtenir son propre cert LE via HTTP-01 sur bro.example.com. Mais c’est Apache qui répond sur le port 80 — le challenge ACME atterrit dans le vide :

ERR Unable to obtain ACME certificate ... 403 ::
  Invalid response from http://bro.example.com/.well-known/acme-challenge/...: 404

Tant que Traefik n’a pas son cert, il refuse de servir la route HTTPS → 502 propagé à Apache puis au client.

Solution

Pour ce pattern (Apache TLS-front + container Coolify derrière), pas de Traefik dans le chemin. Apache tape directement le container via un port loopback :

  1. Compose : ports: ["127.0.0.1:5984:5984"]. Coolify v4 respecte les ports: (cf LKD #42).
  2. Supprimer l’env var SERVICE_FQDN_<SERVICE>_<PORT> → plus de labels Traefik → plus d’ACME parasite.
  3. Vhost Apache : ProxyPass / http://127.0.0.1:5984/ (HTTP local), sans SSLProxyEngine. Redeploy.
services:
  couchdb:
    image: couchdb:3.4
    ports:
      - "127.0.0.1:5984:5984"   # loopback host uniquement
    # ... rien sur SERVICE_FQDN_...

Le préfixe 127.0.0.1: est crucial : sans lui, le port part sur 0.0.0.0 donc Internet.

Lessons learned


Partager cet article :

Article précédent
Self-hosted LiveSync : « rebuilt or corrupted » au 1er sync
Article suivant
Argon2 dans LUKS : moins de mémoire ≠ moins sûr