ShareBox v5 : transcoding GPU et adieu Plex

Je voulais envoyer un lien vers un film à un ami. Plex m'a demandé de scanner une bibliothèque, créer un compte, configurer des agents de métadonnées. Jellyfin était plus léger mais voulait quand même un serveur de base de données. Emby voulait un abonnement.

Tout ce que je voulais : pointer un fichier, obtenir un lien, laisser l'autre cliquer sur play. Alors j'ai construit ShareBox — un serveur media auto-hébergé en PHP pur, sans framework, sans dépendances. La v5 vient de sortir.

25 Mo de RAM, pas de scan, pas de plugins

ShareBox est une alternative légère à Plex et Jellyfin. On pointe un dossier, on lance Docker, c'est en ligne. Pas de scan de bibliothèque (le filesystem est la bibliothèque), pas de base de données externe, pas de plugins. PHP 8 + SQLite + ffmpeg, c'est tout.

ShareBox grille Netflix avec affiches TMDB, navigation séries et films

L'interface grille affiche les affiches TMDB automatiquement, avec navigation par saisons pour les séries. Le player intégré gère les sous-titres (SRT, ASS, PGS), les pistes audio multiples, et le Picture-in-Picture. J'en avais parlé dans l'article sur la v1 — la philosophie zéro dépendance n'a pas changé.

Ce qui change avec la v5

Transcoding GPU — auto-détecté, zéro config

C'est le gros morceau. ShareBox détecte automatiquement le matériel disponible et choisit le meilleur encodeur :

  • Intel VAAPI — NAS Synology, mini-PC, la plupart des serveurs. Disponible dès qu'un iGPU Intel est présent.
  • NVIDIA NVENC — cartes desktop/laptop via Docker avec le runtime NVIDIA. Un docker-compose.nvidia.yml dédié est fourni.
  • Raspberry Pi V4L2M2M — le codec matériel du Pi 4. Suffisant pour du 720p en temps réel sur un Pi à 2 Go de RAM.

Si le GPU échoue (driver manquant, format non supporté), ShareBox retombe automatiquement sur le transcoding logiciel. Pas de config, pas de flag à activer. Le fallback est transparent.

Continue Watching

Un bandeau "Reprendre" apparaît en haut de la page de navigation, avec les 8 dernières vidéos en cours et leur barre de progression. Stocké en localStorage côté client — pas de compte utilisateur nécessaire. On ferme le navigateur, on revient, on reprend où on en était.

9 correctifs de sécurité

Path traversal sur mark_watched, IDOR permettant à un non-admin de supprimer des liens système, XSS via les réponses d'erreur et la recherche, race condition sur le compteur de téléchargements, injection de header HTTP. Chaque fix est documenté dans le CHANGELOG.

52 tests e2e Playwright + CI

Navigation, affiches, admin, player, ZIP, recherche, sécurité — tout est couvert. Les tests tournent sur GitHub Actions contre le container Docker de démo, à chaque push et chaque PR. Combinés aux 159 tests unitaires PHPUnit, ça fait 211 tests au total.

Guides d'installation

La doc couvre maintenant Docker, Raspberry Pi, Synology NAS, Unraid et l'installation bare metal. Avec les commandes exactes, pas juste un "consultez la documentation".

Face à Plex et Jellyfin

ShareBox Plex Jellyfin
Setup 30 secondes 15-30 min 10-20 min
RAM 25 Mo 500 Mo - 2 Go 300 Mo - 1 Go
Scan bibliothèque Aucun Obligatoire Obligatoire
Liens de partage Intégré Non Non
Transcoding GPU Auto-détecté Plex Pass requis Intégré
Raspberry Pi Oui (2 Go) À peine Oui (4 Go)
Coût Gratuit (MIT) Freemium Gratuit (GPL)

ShareBox ne remplace pas Plex pour tout le monde. Si vous avez besoin de synchronisation multi-appareil, de TV en direct ou de gestion musicale, Jellyfin ou Plex restent plus adaptés. Mais pour partager des fichiers et streamer des vidéos sans maintenir une bibliothèque média, c'est l'option la plus simple.

L'installer en 30 secondes

git clone https://github.com/ohugonnot/sharebox.git && cd sharebox
docker compose up -d

Ouvrir http://localhost:8080/share — c'est en ligne. Du contenu de démo est inclus pour tester sans rien configurer.

Pour les possesseurs de GPU NVIDIA :

docker compose -f docker-compose.nvidia.yml up -d

La démo live est accessible ici : grille Films — et le panneau admin avec admin / demo2026.

ShareBox panneau d'administration avec gestion des liens et monitoring système

Conclusion

ShareBox est né d'un besoin simple — envoyer un lien — et il fait toujours exactement ça, mais plus vite et plus solidement. Le transcoding GPU change la donne sur du matériel modeste : un Raspberry Pi qui transcodait péniblement en logiciel peut maintenant servir du 720p en temps réel via V4L2M2M.

Le repo est sur GitHub. Un star si c'est utile, un PR si vous avez envie de contribuer — surtout si vous avez déjà lutté avec les problèmes de sync audio ffmpeg en mode remux.

Commentaires (0)