Commit graph

2 commits

Author SHA1 Message Date
f32a04c56f Ajout d'un Dockerfile multi-stage + .dockerignore
- Build en 3 étapes (deps prod / compilation TS / runtime), image
  node:22-bookworm-slim exécutée en non-root (utilisateur `node`).
- Debian slim et non Alpine : @fastify/secure-session dépend de
  sodium-native, dont les prebuilds linux-x64/arm64 ciblent la glibc.
- config.json et dossiers de dépôt montés en volumes, jamais dans l'image
  (.dockerignore exclut .env, config.json, uploads, node_modules, dist...).
- HEALTHCHECK sur GET /health ; section Docker ajoutée au README.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-09 23:12:21 +02:00
fe8bd26bb7 Initial commit: mediaDrop — serveur de dépôt de fichiers médias
Serveur TypeScript (Fastify 5) permettant de déposer des fichiers médias
dans des dossiers nommés, via une page web de glisser-déposer.

- Authentification OpenID Connect gérée côté serveur (Authorization Code +
  PKCE, client confidentiel, openid-client) ; session via cookie chiffré
  (@fastify/secure-session).
- Configuration dans un fichier JSON (schéma fourni) ; l'environnement ne
  porte que le pointeur MEDIADROP_CONFIG.
- Cibles de dépôt nommées : liste { name, label, dir }, sélection par
  ?target=, première cible par défaut.
- Upload multipart en streaming : nom de fichier dérivé côté serveur (pas
  de path traversal), liste blanche de types MIME, plafond de taille.
- TypeScript strict, ESLint + Prettier sans warning, 46 tests Vitest.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-09 23:06:53 +02:00