SUPERVISION
08/04/2026 00:16 ← Site Backoffice Grafana
✦ Rapport de supervision ✦
IIIF GLAM
vps-16e2ed1f.vps.ovh.net · 08/04/2026 à 00:16:12
🎉
Tous les tests passés
178 tests passés · 0 échecs · 0 avertissements
Tests passés
178
sur 178 tests
Échecs
0
à corriger
Avertissements
0
à surveiller
Taux de succès
100%
178 tests au total
Filtrer :
Obtention des tokens de test
1 · Keycloak — Authentification & Sécurité
Obtenir token viewer-testPASS
Refuser mauvais mot de passePASS
Brute force — erreurs cohérentesPASS
Introspection token valide = activePASS
Introspection token invalide = inactifPASS
OIDC discovery endpoint = 200PASS
JWKS endpoint = 200PASS
universal-viewer Direct Access Grants désactivéPASS
Token contient realm_access.rolesPASS
Token viewer ne contient pas manage-users/realmPASS
2 · Cantaloupe — Auth & Images IIIF
info.json sans token = 401PASS
info.json avec Authorization header = 200PASS
info.json avec cookie kc_token = 200PASS
info.json avec faux token = 403PASS
info.json contient dimensions validesPASS
info.json context IIIF v2PASS
info.json contient profile IIIFPASS
Thumbnail 200px public (sans token) = 200PASS
Thumbnail endpoint /thumbnail/ = 200PASS
Thumbnail requireAuth absent (public)PASS
Tuile sans token = 401PASS
Tuile full = 200PASS
Tuile crop 512x512 = 200PASS
Tuile resize 400px = 200PASS
Tuile rotation 90° = 200PASS
Tuile grayscale = 200PASS
Tuile avec faux token = 403PASS
Tuile content-type = image/jpegPASS
IIIF v3 info.json = 200PASS
Admin Cantaloupe nécessite auth (non 200 sans creds)PASS
Cantaloupe health = 200PASS
3 · RBAC — Contrôle d'accès par rôle
viewer-test accède photos--meteo.jpgPASS
carte-admin accède cartes--carte_ancienne.jpgPASS
Token JWT expiré = 401 ou 403PASS
4 · Manifests IIIF — iiif-manifest-node
Manifest sans token = 401PASS
Manifest avec token = 200PASS
Manifest avec cookie = 200PASS
Manifest @context IIIF v2PASS
Manifest @type = sc:ManifestPASS
Manifest contient au moins 1 canvasPASS
Manifest resource URL pointe vers iiif-glam.techPASS
Manifest avec faux token = 403PASS
5 · MinIO — Stockage S3
MinIO health = 200PASS
MinIO ready = 200PASS
MinIO console = 200PASS
Bucket iiif non public (403/401)PASS
Bucket iiif-photos non public (403/401)PASS
Bucket iiif-manuscrits non public (403/401)PASS
Bucket iiif-cartes non public (403/401)PASS
Bucket iiif-peintures non public (403/401)PASS
Bucket iiif-videos non public (403/401)PASS
Bucket iiif-archives non public (403/401)PASS
User cantaloupe MinIO = policy iiif-readonlyPASS
6 · Universal Viewer & Frontend
Page principale = 200PASS
UV.js = 200PASS
uv.css = 200PASS
index.html contient Mirador 3PASS
index.html implémente PKCEPASS
index.html stocke token en cookie kc_tokenPASS
index.html référence le manifestPASS
Bouton upload masqué par défaut (viewer)PASS
7 · Sécurité HTTP & TLS
HTTP → HTTPS redirection (301/302)PASS
HSTS header présentPASS
X-Frame-Options ou CSP présentPASS
X-Content-Type-Options présentPASS
Server header non verbeuxPASS
TLS 1.2 ou 1.3 uniquementPASS
Certificat TLS valide > 14 joursPASS
Certificat TLS > 30 jours avant renouvellementPASS
Port 8182 fermé publiquementPASS
Port 8180 fermé publiquementPASS
Port 9000 fermé publiquementPASS
Aucun secret résiduel cantaloupe.propertiesPASS
Aucun secret en clair delegates.rbPASS
Cantaloupe TLS verify activé (VERIFY_NONE absent)PASS
Node.js TLS verify activé (rejectUnauthorized: false absent)PASS
8 · Performance & Latence
Latence IIIF info.json | 101ms HTTP=200PASS
Latence tuile full | 141ms HTTP=200PASS
Latence manifest | 15ms HTTP=000PASS
Latence Keycloak OIDC discovery | 22ms HTTP=200PASS
Latence page principale | 16ms HTTP=200PASS
5 requêtes parallèles sans erreurPASS
9 · Services Système
Service cantaloupe = activePASS
Service keycloak = activePASS
Service minio = activePASS
Service nginx = activePASS
Service pm2-manifest-node = activePASS
Service firewalld = activePASS
Mémoire libre > 10%PASS
Disque root < 90% utiliséPASS
Disque /data < 85% utiliséPASS
Load average < 80% CPUs (4 cores)PASS
PM2 manifest-node < 10 erreurs récentesPASS
fail2ban actifPASS
10 · Backup & Configuration
Backup Keycloak < 7 joursPASS
Permissions .env restrictives (600)PASS
Backup delegates.rb présentPASS
11 · Monitoring — Prometheus & Grafana
Prometheus healthPASS
Prometheus targets actifsPASS
Grafana healthPASS
Grafana accessible HTTPSPASS
Grafana dashboards présentsPASS
Node Exporter actifPASS
Nginx Exporter actifPASS
PostgreSQL Exporter actifPASS
Blackbox Exporter actifPASS
Cantaloupe Exporter actifPASS
Node.js /metrics endpointPASS
12 · Sécurité étendue
Port 8080 fermé publiquementPASS
Port 8180 fermé publiquementPASS
Port 8182 fermé publiquementPASS
Port 8443 fermé publiquementPASS
Port 9000 fermé publiquementPASS
Port 9001 fermé publiquementPASS
Port 3000 fermé publiquementPASS
Port 9090 fermé publiquementPASS
Port 3001 fermé publiquementPASS
Port 5432 fermé publiquementPASS
Header Content-Security-Policy présentPASS
Header Permissions-Policy présentPASS
Header X-Content-Type-Options présentPASS
rpcbind désactivéPASS
Cockpit désactivéPASS
auth.iiif-glam.tech HTTPS = 200PASS
Keycloak lié à localhostPASS
Apache lié à localhostPASS
Certificat auth.iiif-glam.tech > 14 joursPASS
13 · Annotations & Base de données
PostgreSQL connexion iiif_annotationsPASS
Table annotations accessiblePASS
API annotations GET = 200PASS
Export annotations W3C = 200PASS
14 · Manifests multi-pages
Manifests multi-pages accessiblesPASS
URL multi-pages sans doublon /manifests/manifests/PASS
Manifest multi-pages JSON validePASS
15 · Backoffice & Interfaces
Backoffice accessible HTTPS = 200PASS
Upload-app accessible HTTPS = 200PASS
API stats accessiblePASS
MinIO console accessible HTTPSPASS
Bucket iiif-thumbs existePASS
16 · APIs IIIF — Search, Discovery, Auth
Search API — HTTP 200PASS
Search API — @context IIIF SearchPASS
Search API — type sc:AnnotationListPASS
Search API — within présentPASS
Autocomplete API — HTTP 200PASS
Discovery API — HTTP 200PASS
Discovery API — type OrderedCollectionPASS
Discovery API — totalItems > 0PASS
Discovery page/0 — HTTP 200PASS
Auth API token — HTTP 200PASS
Auth API token — @contextPASS
Auth API logout — HTTP 200PASS
17 · Endpoints Manifests IIIF
Recent — HTTP 200PASS
Recent — images présentesPASS
Featured — HTTP 200PASS
Collection all — HTTP 200PASS
Collection all — manifests > 0PASS
Export manifest — HTTP 200PASS
Search manifests — HTTP 200PASS
18 · RBAC — Contrôle accès par collection
carte-admin accède cartesPASS
carte-admin bloqué sur photos (403)PASS
photo-admin accède photosPASS
photo-admin bloqué sur cartes (403)PASS
viewer-test accède toutes collectionsPASS
19 · Conformité IIIF
Manifest v3 — 0 erreur conformitéPASS
Manifest v3 — summary présentPASS
Manifest v3 — thumbnail présentPASS
Manifest v3 — seeAlso v2+v3PASS
Manifest v3 — rendering présentPASS
Manifest v3 — homepage présentPASS
Manifest v3 — motivation paintingPASS
CORS Access-Control-Allow-OriginPASS
20 · Interfaces Web
Landing page — HTTP 200PASS
API Docs — HTTP 200PASS
Viewer index — HTTP 200PASS
Supervision — HTTP 200PASS
Landing — section collections présentePASS
API Docs — endpoints IIIF présentsPASS
Viewer — Mirador chargéPASS