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é :
- Aller sur grafana.epitools.bj
- Menu Explore → Source de données Loki
- Requête :
{container_name="epidocs_frontend_container"}
- 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 |