Skip to content

Dépannage ​

Les problèmes possibles, comment les reconnaître et comment les résoudre.

Le site ou l'API ne répond pas ​

502 Bad Gateway ​

Traefik fonctionne, mais le conteneur derrière ne répond pas.

bash
cd /opt/timemanager/app
docker compose ps
docker compose logs --tail 200 back
Dans les journauxCauseSolution
environment variable DATABASE_URL is missing.env incompletRelancer --tags app
environment variables WEB_URL and CORS_ORIGINS are missingCORS_ORIGINS absentRelancer --tags app
Erreur pendant migrateUne migration a échouéVoir avec l'équipe backend, éventuellement revenir à la version précédente
connection refused vers dbLa base ne démarre pasdocker compose logs db
Rien, le conteneur redémarre en bouclePlantage au démarragedocker compose logs --tail 500 back

Si le conteneur est Up mais Traefik ne le joint pas, vérifier qu'il est bien sur le réseau timemanager :

bash
docker network inspect timemanager | grep Name

404 de Traefik ​

Le domaine arrive à Traefik, mais aucune route ne correspond. Vérifier traefik/dynamic/ sur tm-prod et la règle Host(...).

Certificat invalide ​

bash
docker logs timemanager-traefik 2>&1 | grep -i acme
CauseSolution
Le domaine ne pointe pas vers tm-prodCorriger le DNS, attendre la propagation
Le port 80 est ferméLet's Encrypt en a besoin pour le défi. Vérifier UFW et le pare-feu Google Cloud.
Trop de demandesLet's Encrypt limite le nombre de certificats par semaine. Attendre.
acme.json mal protégéIl doit être en 0600 : chmod 600 /opt/timemanager/traefik/acme.json

Jenkins ​

Le pipeline ne se lance pas ​

CauseVérification
Le commit n'est pas dans maingit log origin/main
Le commit ne touche pas les bons cheminsVoir includedRegions dans job_dsl.groovy
Le jeton GitHub a expiréDans le job, Polling Log : erreur d'authentification. Renouveler github_token dans le vault, --tags jenkins.

Le pipeline échoue ​

Ouvrir le build, puis Console Output.

ÉtapeMessage typiqueCause
Testmix test avec des tests en échecUn vrai bug : à corriger par l'équipe backend
Testpg_isready dépasse 60 sLa machine est surchargée, relancer
BuildVITE_API_URL build argument is requiredVITE_API_URL absent de casc.yml ou du .env de Jenkins
Buildno space left on deviceDisque plein, voir Le disque
ScanTotal: N (CRITICAL: N)Une faille critique dans une dépendance ou l'image de base. Mettre à jour l'image de base ou la dépendance.
Pushdenied ou unauthorizedJeton GHCR expiré ou sans le droit write:packages
DeployPermission denied (publickey)La clé de Jenkins n'est plus autorisée sur deploy. Relancer --tags app.
DeployHost key verification failedtm-prod a été recréée, son empreinte a changé. Sur tm-tooling : docker exec jenkins ssh-keygen -R 10.132.0.2.

Jenkins ne démarre pas ​

bash
ssh eliashounnou@34.156.3.169
cd /opt/timemanager/jenkins
docker compose ps
docker compose logs --tail 200 jenkins

Une erreur de casc.yml (variable manquante, YAML invalide) empêche le démarrage : le message cite la ligne en cause.

Ansible ​

MessageCauseSolution
Decryption failedMauvais mot de passe du vaultLe redemander à l'équipe
Host key verification failedLa machine a été recrééessh-keygen -R <ip> puis se connecter une fois à la main
UNREACHABLESSH impossibleVérifier l'IP dans inventory.ini, ta clé, que la VM tourne
'xxx' is undefinedUne variable manqueVérifier group_vars/all.yml et le vault

Le mobile n'arrive pas à se connecter ​

Le mobile appelle https://api.time.jostud.com/api, comme le web. Si le web marche et pas le mobile, le problème est côté app (voir Lancer l'app). Si les deux échouent, c'est l'API : voir plus haut.