178 lines
7.7 KiB
Markdown
178 lines
7.7 KiB
Markdown
---
|
|
title: Fireshare
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, gaming, video, streaming, clips, partage-media, transcodage]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Gaming, https://github.com/ShaneIsrael/fireshare]
|
|
---
|
|
|
|
# 🔥 Fireshare
|
|
|
|
> **Partage de clips gaming via liens uniques** — auto-hébergez vos highlights et partagez-les avec votre communauté, sans Twitch ni YouTube.
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [fireshare.net](https://fireshare.net/) |
|
|
| **GitHub** | [ShaneIsrael/fireshare](https://github.com/ShaneIsrael/fireshare) |
|
|
| **License** | GPL-3.0 |
|
|
| **Langage** | JavaScript (frontend) + Python (backend) |
|
|
| **Étoiles** | ⭐88 (catalogue) / 1,4k (GitHub) |
|
|
| **Dernière MAJ** | 2026-06-05 (v1.6.15) |
|
|
| **Catégorie** | [[cat-gaming\|Gaming]] |
|
|
|
|
## 📝 Description
|
|
|
|
**Fireshare** est une application web self-hosted dédiée au **partage de clips et vidéos gaming**. Vous déposez vos `.mp4`, `.webm`, `.mov` ou `.m4v` dans un dossier, Fireshare scanne, génère les jaquettes, organise par jeu, et expose chaque clip via une **URL unique partageable** (public ou privé, protégé par mot de passe au choix).
|
|
|
|
L'application a été pensée pour les **streamers, monteurs vidéo, et communautés gaming** qui veulent s'affranchir des plateformes centralisées (Twitch, YouTube, Twitter) pour partager leurs highlights. Chaque clip peut être **public** (apparaît dans le flux communautaire et un flux RSS), ou **privé** (accessible uniquement via le lien direct), ou encore **protégé par mot de passe**.
|
|
|
|
Fireshare propose un **transcodage optionnel** (CPU ou GPU NVIDIA NVENC) pour générer des versions en plus basse qualité, ce qui permet le **streaming adaptatif** — le serveur bascule automatiquement le viewer sur une version allégée si sa bande passante est insuffisante. Le fichier original est toujours servi tel quel quand c'est possible.
|
|
|
|
**Fonctionnalités clés** :
|
|
- ✅ Scan automatique de dossiers, détection du jeu, génération de jaquettes
|
|
- ✅ Liens uniques partageables (public, privé, protégé par mot de passe)
|
|
- ✅ Transcodage CPU ou GPU NVIDIA (NVENC) pour streaming adaptatif
|
|
- ✅ Flux RSS pour les nouveaux clips publics
|
|
- ✅ Notifications Discord / webhooks
|
|
- ✅ Comptage de vues, tags, recherche, **crop vidéo** depuis l'UI
|
|
- ✅ Uploads depuis l'UI (désactivables)
|
|
- ✅ Support **LDAP** pour l'authentification d'entreprise
|
|
- ✅ Open Graph metadata pour **aperçus riches** sur Discord/Slack/Twitter
|
|
- ✅ **Nouveau (v1.6)** : système dédié screenshots/feed images, règles par dossier
|
|
|
|
## 🚀 Installation
|
|
|
|
### Option 1 : Docker Compose (recommandé)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
services:
|
|
fireshare:
|
|
container_name: fireshare
|
|
image: shaneisrael/fireshare:latest-lite # ou :latest pour GPU NVIDIA
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8080:80"
|
|
volumes:
|
|
- ./fireshare/data:/data # base SQLite interne
|
|
- ./fireshare/processed:/processed # jaquettes et métadonnées générées
|
|
- /chemin/vers/clips:/videos # vos clips gaming à partager
|
|
- /chemin/vers/screenshots:/images # vos screenshots (optionnel)
|
|
environment:
|
|
- ADMIN_USERNAME=admin
|
|
- ADMIN_PASSWORD=ChangezMoiTresFort!
|
|
- SECRET_KEY=$(openssl rand -hex 32)
|
|
- DOMAIN=https://clips.example.com # requis pour Open Graph
|
|
- PUID=1000
|
|
- PGID=1000
|
|
- TZ=Europe/Paris
|
|
# Transcodage GPU NVIDIA (image :latest uniquement, pas :latest-lite)
|
|
- ENABLE_TRANSCODING=true
|
|
- TRANSCODE_GPU=true
|
|
- NVIDIA_VISIBLE_DEVICES=all
|
|
# Uniquement pour l'image :latest avec GPU
|
|
# deploy:
|
|
# resources:
|
|
# reservations:
|
|
# devices:
|
|
# - driver: nvidia
|
|
# count: all
|
|
# capabilities: [gpu]
|
|
```
|
|
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
Puis ouvrir `http://IP:8080` et se connecter avec `ADMIN_USERNAME` / `ADMIN_PASSWORD`.
|
|
|
|
### Option 2 : Image `latest` (GPU NVIDIA)
|
|
|
|
L'image complète `shaneisrael/fireshare:latest` embarque FFmpeg avec les libs CUDA pour le transcodage NVENC. Attention, elle pèse ~2,5 Go contre ~250 Mo pour `latest-lite`.
|
|
|
|
### Option 3 : Installation manuelle
|
|
|
|
```bash
|
|
git clone https://github.com/ShaneIsrael/fireshare.git
|
|
cd fireshare
|
|
# Backend Python
|
|
cd server
|
|
pip install -r requirements.txt
|
|
python -m flask run
|
|
# Frontend (autre terminal)
|
|
cd ../client
|
|
npm install
|
|
npm run build
|
|
```
|
|
|
|
## ⚙️ Configuration
|
|
|
|
1. **Volumes** : quatre montages obligatoires : `/data` (BDD), `/processed` (cache), `/videos` (sources), `/images` (screenshots).
|
|
2. **Variables critiques** :
|
|
- `SECRET_KEY` : 64 caractères hex (`openssl rand -hex 32`)
|
|
- `DOMAIN` : URL publique exacte (sinon Open Graph cassé)
|
|
- `ADMIN_USERNAME` / `ADMIN_PASSWORD` : créés au premier démarrage
|
|
3. **Transcodage** : `ENABLE_TRANSCODING=true` active la génération de versions basse qualité. Surviewer auto-downgrade en cas de buffering.
|
|
4. **GPU** : `TRANSCODE_GPU=true` + image `:latest` (pas `:latest-lite`) + driver NVIDIA ≥470 + toolkit CUDA.
|
|
5. **LDAP** : support natif pour intégrer un annuaire d'entreprise.
|
|
6. **Webhook Discord** : URL configurable dans l'admin pour notifier chaque nouveau clip.
|
|
|
|
## 🔄 Alternatives
|
|
|
|
### Open Source
|
|
|
|
- [[app-peertube]] — Plateforme vidéo décentralisée, plus générale que gaming
|
|
- [[app-jellyfin]] — Serveur média avec transcodage, pas de partage de clips
|
|
- **Owncast** — Streaming live self-hosted, complémentaire pour le live
|
|
- **BilboPlanet** — Partage vidéo décentralisé (en développement)
|
|
- **DTube** — Alternative décentralisée YouTube (skinned)
|
|
- [[app-gaseous]] — Plutôt ROMs mais peut servir au partage
|
|
|
|
### Propriétaires (ce que Fireshare remplace)
|
|
|
|
- **Twitch Clips** — hébergement par Twitch, suppression possible à tout moment
|
|
- **Twitter/X vidéo** — compression agressive, déréférencement fréquent
|
|
- **YouTube Unlisted** — workflow lourd, anti-embed Twitch-friendly
|
|
- **Streamable** — service gratuit devenu limité (paywall + ads)
|
|
- **Gyazo / Imgur GIF** — pour les GIFs courts uniquement
|
|
|
|
### Comparaison rapide
|
|
|
|
| Critère | Fireshare | Owncast | Peertube |
|
|
| :--- | :--- | :--- | :--- |
|
|
| Cible | Clips gaming | Live stream | Vidéo à la demande |
|
|
| Transcodage | ✅ GPU | ❌ | ✅ |
|
|
| Liens uniques | ✅ | n/a | n/a |
|
|
| Multi-tenants | ❌ | ❌ | ✅ |
|
|
| Licence | GPL-3.0 | MIT | AGPL-3.0 |
|
|
|
|
## 🔐 Sécurité
|
|
|
|
- **Auth obligatoire** sur l'admin. Changer `ADMIN_PASSWORD` immédiatement.
|
|
- **`SECRET_KEY` cryptographique** : `openssl rand -hex 32` minimum, ne JAMAIS réutiliser.
|
|
- **Exposer Fireshare derrière un reverse proxy** ([[app-traefik]], [[app-caddy]], [[app-nginx-proxy-manager]]) avec TLS valide, sinon les aperçus Open Graph sont cassés.
|
|
- **Restriction upload** : `ENABLE_UPLOADS=false` (variable env) si vous ne voulez pas que des utilisateurs uploadent sur votre instance.
|
|
- **Protection des clips** : utiliser systématiquement le mode `private` + lien direct, ou `password-protected` pour les highlights sensibles.
|
|
- **Backups** : sauvegarder `./fireshare/data` (SQLite) et `./fireshare/processed` (cache de métadonnées). Le dossier vidéos source peut être reconstitué.
|
|
|
|
## 📚 Ressources
|
|
|
|
- [GitHub ShaneIsrael/fireshare](https://github.com/ShaneIsrael/fireshare)
|
|
- [Site officiel](https://fireshare.net/)
|
|
- [Démo live](https://demo.fireshare.net/)
|
|
- [Docker Hub](https://hub.docker.com/r/shaneisrael/fireshare)
|
|
|
|
## Pages Liées
|
|
|
|
- [[cat-gaming]] — Catégorie Gaming
|
|
- [[app-peertube]] — Alternative vidéo décentralisée
|
|
- [[app-jellyfin]] — Streaming média généraliste
|
|
- [[app-traefik]] — Reverse proxy recommandé
|
|
- [[recettes-docker-compose]] — Templates Docker
|
|
- [[securisation-home-lab]] — Durcir l'infra
|