Aller au contenu

EPIDOCS — Diagnostics

Vérification rapide

État du conteneur frontend

# Vérifier que le conteneur tourne
docker ps | grep epidocs_frontend

# Vérifier la santé du conteneur
docker inspect epidocs_frontend_container --format='{{.State.Health.Status}}'
# Attendu : healthy

# Vérifier le port
curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:7012
# Attendu : 200

État du conteneur backend

# Vérifier que le backend tourne
docker ps | grep epidocs_backend

# Tester l'API
curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:7010/admin/system-status
# Attendu : 200 (ou 401 si non authentifié)

Connectivité frontend → backend

# Depuis le VPS, tester que le frontend peut joindre le backend
docker exec epidocs_frontend_container wget -q -O- http://127.0.0.1:7010/ 2>/dev/null
# Si erreur : vérifier que les deux conteneurs sont sur le même réseau Docker
# ou que NEXT_PUBLIC_API_URL pointe vers la bonne URL

Vérifier les variables d'environnement

# Vérifier les variables injectées dans le conteneur
docker exec epidocs_frontend_container env | grep NEXT_PUBLIC

# Attendu :
# NEXT_PUBLIC_API_URL=https://api-mydocs.epitools.bj
# NEXT_PUBLIC_WEB_URL=https://mydocs.epitools.bj

Logs

Logs Docker (direct)

# Dernières 50 lignes
docker logs epidocs_frontend_container --tail 50

# Suivre en temps réel
docker logs epidocs_frontend_container -f

# Logs avec timestamps
docker logs epidocs_frontend_container --tail 100 -t

# Logs du backend
docker logs epidocs_backend_container --tail 50

Logs via Grafana/Loki

Si le stack de monitoring (Pedago Watch) est configuré :

  1. Aller sur grafana.epitools.bj
  2. Menu Explore → Source de données Loki
  3. Requête : {container_name="epidocs_frontend_container"}
  4. Pour les erreurs uniquement : {container_name="epidocs_frontend_container"} |= "error"

Vérification des services externes

Microsoft Azure AD (OAuth)

# Tester la connectivité vers Azure AD depuis le VPS
curl -s -o /dev/null -w "%{http_code}" https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration
# Attendu : 200

Backend API

# Tester l'endpoint de statut système (ne nécessite pas d'auth pour la lecture)
curl -s http://127.0.0.1:7010/admin/system-status | python3 -m json.tool

# Réponse attendue :
# {
#   "isActive": true,
#   "reason": "",
#   "updatedAt": "...",
#   "scheduledMaintenance": null
# }

Nginx (reverse proxy)

# Vérifier que Nginx route correctement vers le frontend
curl -s -o /dev/null -w "%{http_code}" https://mydocs.epitools.bj
# Attendu : 200

# Vérifier la config Nginx
docker exec nginx-proxy nginx -t
# Attendu : syntax is ok / test is successful

# Voir les logs Nginx pour EPIDOCS
docker exec nginx-proxy cat /var/log/nginx/access.log | grep epidocs | tail 20

Vérification de l'espace disque

# Espace utilisé par les conteneurs Docker
docker system df

# Espace disque global
df -h /root/projects/epidocs

# Nettoyer les images Docker inutilisées
docker image prune -f

Vérification du réseau Docker

# Lister les réseaux
docker network ls | grep epidocs

# Inspecter le réseau
docker network inspect epidocs-frontend_epidocs-network

# Vérifier les conteneurs connectés
docker network inspect epidocs-frontend_epidocs-network --format '{{range .Containers}}{{.Name}} {{end}}'

Aide-mémoire des ports

Service Port hôte Port conteneur
Frontend Next.js 7012 3000
Backend Django 7010 (interne)
Nginx 80/443 80/443

Aide-mémoire des chemins VPS

Élément Chemin
Frontend /root/projects/epidocs/epidocs-frontend
Backend /root/projects/epidocs/epidocs-backend
Docker Compose (frontend) /root/projects/epidocs/epidocs-frontend/docker-compose.prod.yml
Env file (frontend) /root/projects/epidocs/epidocs-frontend/.env
Nginx config /root/projects/nginx/conf.d/epidocs.conf