135 lines
5.7 KiB
Markdown
135 lines
5.7 KiB
Markdown
---
|
|
title: PeerTube
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, activitypub-fediverse, video, youtube, typescript, fediverse]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=activitypub-fediverse, https://github.com/Chocobozzz/PeerTube, https://joinpeertube.org/]
|
|
---
|
|
|
|
# 🎬 PeerTube
|
|
|
|
> **La plateforme vidéo décentralisée et fédérée** : l'alternative à YouTube soutenue par la Framasoft, basée sur ActivityPub, BitTorrent et un réseau P2P pour alléger la bande passante.
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [https://joinpeertube.org](https://joinpeertube.org) |
|
|
| **GitHub** | [https://github.com/Chocobozzz/PeerTube](https://github.com/Chocobozzz/PeerTube) |
|
|
| **License** | AGPL-3.0 |
|
|
| **Langage principal** | TypeScript, PostgreSQL |
|
|
| **Étoiles GitHub** | 13 800 ⭐ |
|
|
| **Dernière MAJ** | 2026-05 |
|
|
| **Catégorie** | [[cat-activitypub-fediverse]] |
|
|
|
|
## Description
|
|
|
|
PeerTube est l'une des pièces maîtresses du Fediverse. C'est une **plateforme de publication vidéo** comparable à YouTube (chaîne, abonnements, likes, commentaires, monétisation, lives) mais **décentralisée** et **fédérée** : chaque instance héberge ses propres créateurs, et un compte Mastodon peut suivre une chaîne PeerTube, voir les vidéos dans son fil, et commenter.
|
|
|
|
L'innovation technique majeure est l'**architecture P2P** : quand une vidéo devient populaire, elle est servie par les autres pairs qui l'ont déjà regardée (intégration WebTorrent). Cela permet à de petites instances d'héberger des vidéos massives sans exploser la bande passante. L'instance reçoit les fragments manquants depuis les autres nœuds.
|
|
|
|
Fonctionnalités principales : **chaîne** avec miniatures et playlists, **sous-titres** WebVTT, **import/export de vidéos** (.mp4, .webm), **transcodage** H.264/H.265 configurable, **lives RTMP/HLS**, **commentaires fedérés**, **historique de visionnage**, **filtres**, **thèmes**, **OAuth2 pour clients tiers** (clients Android comme **Tubular**, **PeerTube for Android**).
|
|
|
|
**Points forts** : mature (depuis 2018), plus de 1 800 instances publiques, Framasoft derrière le développement, pas d'algorithme de classement, pas de publicité, support natif de l'import.
|
|
|
|
**Points faibles** : **RAM et stockage** importants (transcodage = 2-4 Go RAM, 100-500 Go de stockage selon usage), pas d'application iOS officielle, transcodage long pour les vidéos > 1 h, et la monétisation reste embryonnaire (plugin Tipeee / OpenCollective).
|
|
|
|
## Installation
|
|
|
|
### Via Docker (recommandé)
|
|
|
|
L'image officielle est `chocobozzz/peertube` sur Docker Hub. La stack typique inclut PostgreSQL, Redis et un serveur de fichiers.
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
services:
|
|
peertube:
|
|
image: chocobozzz/peertube:v7
|
|
restart: unless-stopped
|
|
env_file: .env
|
|
volumes:
|
|
- peertube_data:/data
|
|
- peertube_config:/config
|
|
- ./docker/nginx:/etc/nginx/conf.d
|
|
ports:
|
|
- "9000:9000"
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER: peertube
|
|
POSTGRES_PASSWORD: change-me
|
|
POSTGRES_DB: peertube
|
|
volumes:
|
|
- peertube_db:/var/lib/postgresql/data
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
restart: unless-stopped
|
|
volumes:
|
|
- peertube_redis:/data
|
|
|
|
volumes:
|
|
peertube_data:
|
|
peertube_config:
|
|
peertube_db:
|
|
peertube_redis:
|
|
```
|
|
|
|
### Installation manuelle
|
|
|
|
Voir la doc officielle : `https://docs.joinpeertube.org/install-anywhere`. Prévoir Node.js 20+, PostgreSQL 14+, Redis 7+, FFMPEG avec codecs H.264/H.265, Yarn, et un reverse-proxy HTTPS (Caddy ou Nginx).
|
|
|
|
## Configuration
|
|
|
|
1. Copier `docker-compose.yaml` officiel et `.env` depuis le dépôt.
|
|
2. Régénérer les secrets (`peertube --help` pour `secret`).
|
|
3. Compléter `PEERTUBE_HOSTNAME`, `PEERTUBE_WEBSERVER.*`, SMTP.
|
|
4. Démarrer la stack, créer le compte admin via l'interface web.
|
|
5. **Configurer le reverse-proxy HTTPS** (Caddy est le plus simple) en important le template officiel.
|
|
6. Activer la federation : par défaut activée, vérifier `federation.enabled` et les ports 443 ouverts.
|
|
|
|
## Alternatives
|
|
|
|
### Open source
|
|
- **Odysee / LBRY** — Vidéo sur blockchain (OP_RETURN), pas ActivityPub
|
|
- [[app-jellyfin]] — Streaming média, pas de partage social
|
|
- **Owncast** — Live vidéo self-hosted, pas de VOD fedérée
|
|
- **TILVids** — Plateforme d'instances PeerTube hébergées
|
|
- [[app-mastodon]] — Pour la promotion croisée des vidéos
|
|
|
|
### Propriétaires
|
|
- **YouTube** — L'original, adossé à Google
|
|
- **Twitch** — Live principal, non self-hostable
|
|
- **Vimeo** — Freemium orienté pro
|
|
|
|
## Sécurité
|
|
|
|
- ✅ **Authentification** : email + mot de passe, 2FA TOTP, OAuth2 (applications)
|
|
- ✅ **HTTPS** obligatoire (HSTS)
|
|
- ✅ **Modération** : signalements, blocage de comptes et d'instances, anti-spam
|
|
- ✅ **Pluggable** : les plugins peuvent ajouter anti-flood, captcha, etc.
|
|
- ⚠️ **Stockage** : taille max par vidéo paramétrable, attention au quota disque
|
|
- ⚠️ **Transcodage** : processus lourd, isoler en worker dédié pour les grosses instances
|
|
- ⚠️ **P2P** : WebRTC expose l'IP de l'instance, bien configurer `trust_proxy`
|
|
|
|
## Ressources
|
|
|
|
- [Site officiel](https://joinpeertube.org)
|
|
- [Documentation](https://docs.joinpeertube.org)
|
|
- [GitHub Chocobozzz/PeerTube](https://github.com/Chocobozzz/PeerTube)
|
|
- [Framasoft — hébergement d'instances](https://framasoft.org)
|
|
|
|
## Pages Liées
|
|
|
|
- [[cat-activitypub-fediverse]] — Catégorie parente
|
|
- [[app-mastodon]] — Federation entre vidéo et microblogage
|
|
- [[app-jellyfin]] — Pour une médiathèque locale complémentaire
|
|
- [[app-caddy]] — Reverse-proxy HTTPS recommandé
|
|
- [[recettes-docker-compose]] — Templates Docker
|