Problèmes rencontrés sur le serveur principal et leur solution.
Accès local
Services inaccessibles depuis le réseau local par leur nom de domaine
Cause : la box ne gère pas le hairpin NAT. Depuis le LAN, le domaine public résout vers l'IP publique, et la box ne renvoie pas le trafic vers l'intérieur.
Solution : réécriture DNS dans AdGuard Home (Raspberry Pi), Filtres > Réécritures DNS :
| Domaine | Réponse |
|---|---|
| *.<DOMAINE> | <IP_SERVEUR> |
| <DOMAINE> | <IP_SERVEUR> |
En dépannage ponctuel sur un poste : une ligne <IP_SERVEUR> <SOUS_DOMAINE>.<DOMAINE> dans /etc/hosts.
Accès intermittent au domaine DuckDNS
Cause : instabilité des serveurs de noms DuckDNS (TTL de 60 s, pas de cache efficace).
Solution durable : domaine payant avec DNS Cloudflare.
Portainer
Erreur 504 pendant un redéploiement
Le reverse proxy coupe la connexion avant la fin d'un déploiement long, qui aboutit quand même côté Docker. Utiliser l'accès direct : https://<IP_SERVEUR>:9443.
Échec d'une stack avec build: .
Portainer construit dans un dossier temporaire où les sources n'existent pas. Construire l'image sur l'hôte, puis la référencer par son nom dans la stack :
SWAG et Authelia
Erreur nginx « directive is duplicate »
Le proxy.conf inclus par SWAG déclare déjà proxy_http_version, Upgrade, Connection et proxy_read_timeout. Les retirer du proxy-conf personnalisé.
Erreur au chargement d'un proxy-conf avec Authelia
Le proxy-conf inclut un fichier qui n'existe pas (authelia-authrequest.conf). Seuls deux includes sont nécessaires :
include /config/nginx/proxy.conf;
Modification de la configuration Authelia sans effet
Authelia ne recharge pas sa configuration à chaud :
SearXNG
Erreur 500 derrière le reverse proxy
Cause : limiter.toml au format d'une ancienne version. Les réglages sont désormais sous la section [botdetection].
trusted_proxies = ['172.16.0.0/12', '10.0.0.0/8']
Les deux plages couvrent les réseaux Docker internes.
Nextcloud
Page de mise à jour des applications vide
Bug de certaines versions, déclenché par une application dont l'identifiant dépasse 32 caractères. Mettre à jour en ligne de commande :
Avertissement « index manquants »
XWiki
XWiki ne démarre plus après une mise à jour (erreur Solr)
Cause : l'index Solr existant est incompatible avec la nouvelle version (erreur FieldExistsQuery).
Solution : déplacer les deux dossiers Solr en même temps. Déplacer un seul ne suffit pas.
cd <APPDATA>/xwiki/data/data
mv store/solr store/solr.bak.$(date +%F)
mv cache/solr cache/solr.bak.$(date +%F)
docker start <CONTENEUR_XWIKI>
L'index est reconstruit au démarrage à partir de la base ; la recherche reste incomplète tant que la reconstruction n'est pas terminée. Attention au double data dans le chemin.
Dawarich
Sidekiq bloqué en « Created »
Cause : avec APPLICATION_PROTOCOL: https, Puma refuse la requête HTTP locale du healthcheck ; le conteneur app n'est jamais « healthy » et sidekiq, qui en dépend, ne démarre pas.
Solution : ajouter l'en-tête au healthcheck du conteneur app :
test: ["CMD-SHELL", "wget -qO - --header='X-Forwarded-Proto: https' http://127.0.0.1:3000/api/v1/health | grep -q '\"status\"\\s*:\\s*\"ok\"'"]
Le géocodage inverse ne fait rien
Il est désactivé tant qu'aucun fournisseur n'est défini : le job se lance et se termine sans traiter de point. Avec Photon en local, sur app et sidekiq :
PHOTON_API_USE_HTTPS: "false"
Sans /api dans l'hôte, sans clé d'API.
Lieux nommés « Suggested place » après confirmation en masse
Le nommage se fait à la détection, jamais à la confirmation. Relancer le géocodage sur chaque lieu concerné depuis la console Rails :
CrowdSec
Captcha Turnstile sans effet
Les variables CROWDSEC_CAPTCHA_PROVIDER, CROWDSEC_SITE_KEY et CROWDSEC_SECRET_KEY vont sur le service swag, pas sur crowdsec : c'est le bouncer nginx, un mod de SWAG, qui affiche le captcha.