mediaDrop/config.example.json
Nicolas 8eb0470474
All checks were successful
Publier l'image Docker / test (push) Successful in 22s
Publier l'image Docker / publish (push) Successful in 10s
Notifications par webhook (upload finalisé / échec)
Nouvelle clé `webhooks` : liste de points de terminaison POST notifiés à
chaque upload finalisé (`upload`, direct comme fragmenté) et à chaque
requête `/upload*` terminée en 4xx/5xx (`error`).

Chaque entrée : `url` (http/https), `events` (défaut : les deux),
`headers` (auth du récepteur), `secret` (signature HMAC-SHA256 dans
`X-MediaDrop-Signature`), `timeoutMs` (défaut 5 s, max 30 s).

Corps JSON structuré + champs `text`/`content` portant un résumé lisible,
pour fonctionner tel quel avec Slack / Discord / ntfy ou un récepteur
custom. Livraison en parallèle, sans bloquer la réponse d'upload ; une
nouvelle tentative sur erreur réseau / 429 / 5xx ; échecs journalisés en
`warn` ; l'arrêt du serveur attend les envois en cours. Sans webhook
configuré, le notifieur est une non-opération.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-10 19:29:44 +02:00

25 lines
802 B
JSON

{
"$schema": "./config.schema.json",
"port": 3000,
"host": "0.0.0.0",
"publicUrl": "http://localhost:3000",
"targets": [
{ "name": "photos", "label": "Photos", "dir": "./uploads/photos" },
{ "name": "videos", "label": "Vidéos", "dir": "./uploads/videos", "allowDirectories": true }
],
"maxFileSizeMb": 512,
"logLevel": "info",
"chunkPoolSize": 30,
"allowedMimeTypes": ["image/jpeg", "image/png", "image/webp", "video/mp4", "audio/mpeg"],
"webhooks": [],
"session": {
"key": "REMPLACER_PAR_32_OCTETS_BASE64_openssl_rand_base64_32",
"maxAgeHours": 12
},
"oidc": {
"issuer": "https://auth.exemple.fr/realms/mon-realm",
"clientId": "mediadrop",
"clientSecret": "REMPLACER_PAR_LE_SECRET_DU_CLIENT",
"scopes": ["openid", "profile", "email"]
}
}