Héberger Owncast sur un VPS infogéré, c'est diffuser vos directs vidéo et animer leur chat depuis une machine à vous, que nos équipes tiennent à jour et supervisent jour et nuit. Owncast est un logiciel libre sous licence MIT. Ce guide suit sa documentation officielle : le processeur et la bande passante à prévoir, l'installation avec Docker Compose, la clé de diffusion, HTTPS, les qualités vidéo, le stockage objet, le chat, les sauvegardes et les mises à jour.
Par Simon Vasconcelos Lee
Publié le 14 novembre 2026Lecture : 16 minutes
owncast/owncast, qui embarque ffmpeg, le port web 8080 derrière un proxy inverse en HTTPS, et le port RTMP 1935 pour votre logiciel de diffusion.abc123 par défaut.data hors du serveur pour une reprise complète, et mettez à jour avec docker compose pull.Owncast est un serveur de diffusion vidéo en direct et de chat, open source, auto-hébergé et mono-utilisateur : une instance porte la chaîne d'une personne ou d'une organisation. Son README le présente comme une façon de tenir ses propres directs, dans l'esprit des grandes plateformes, en gardant la maîtrise du contenu, de l'interface, de la modération et du public.
/hls/stream.m3u8.Owncast est publié sous licence MIT. Elle accorde gratuitement le droit d'utiliser, de copier, de modifier, de fusionner, de publier, de distribuer, de sous-licencier et de vendre des copies du logiciel. Vous pouvez donc le faire tourner pour votre entreprise, votre communauté ou vos clients, sans licence à acheter.
La seule condition est de garder la notice de copyright et le texte de la licence dans toute copie ou partie substantielle du logiciel. Le texte fournit le logiciel « tel quel », sans garantie.
La documentation le dit d'emblée : les besoins dépendent de votre configuration. Elle pose une règle claire pour les estimer. Le processeur transcode la vidéo dans les qualités que vous proposez ; la bande passante la distribue à chaque spectateur.
La documentation donne deux formules. Le volume d'un direct, en gigaoctets : débit en kbit/s × durée en secondes × spectateurs ÷ 8 000 000. Le débit de pointe à tenir en sortie, en Mbit/s : débit en kbit/s × spectateurs ÷ 1 000. Avec plusieurs qualités, calculez chacune et additionnez. Ses estimations pour un direct de deux heures :
| Débit du flux | 10 spectateurs | 25 spectateurs | 50 spectateurs |
|---|---|---|---|
| 2 000 kbit/s | 18 Go, 20 Mbit/s | 45 Go, 50 Mbit/s | 90 Go, 100 Mbit/s |
| 4 000 kbit/s | 36 Go, 40 Mbit/s | 90 Go, 100 Mbit/s | 180 Go, 200 Mbit/s |
| 6 000 kbit/s | 54 Go, 60 Mbit/s | 135 Go, 150 Mbit/s | 270 Go, 300 Mbit/s |
Sur un VPS Simafri, le trafic n'a pas de compteur mensuel : vos directs se dimensionnent sur leur débit de pointe. Quand l'audience grandit, le stockage objet, présenté plus bas, sert la vidéo à la place du serveur.
La documentation donne des repères mesurés, en précisant qu'ils varient selon le codec, le débit, la résolution et le préréglage d'encodage :
| Configuration | Charge du processeur |
|---|---|
| Une seule qualité en passthrough, sans réencodage | Minimale |
| Une seule qualité transcodée | Légère |
| Deux qualités, haute et basse | Modérée |
| Trois qualités, ou une forte compression | Élevée |
La mémoire n'est pas chiffrée par la documentation, et le disque compte peu : les segments vidéo sont écrits puis effacés au fil du direct. Seul le dossier data grandit avec le temps. Sur un VPS, c'est le processeur qui encode : chaque qualité transcodée se dimensionne en vCPU. Sur un VPS infogéré, décrivez-nous vos directs, leur débit, leurs qualités et votre audience, et nous vous recommandons la taille qui convient.
Avant d'atteindre le serveur, le direct part de votre connexion. La documentation demande un débit montant d'au moins 1,5 fois le débit du flux : 7,5 Mbit/s pour un flux à 5 000 kbit/s. Elle recommande une connexion filaire plutôt que le Wi-Fi.
La documentation propose l'image owncast/owncast de Docker Hub, qui contient ffmpeg, l'outil d'encodage dont Owncast a besoin. Sur un serveur où Docker est installé, créez un dossier et placez-y ce compose.yaml, tiré de la documentation :
services:
owncast:
image: owncast/owncast:latest
restart: unless-stopped
ports:
- "127.0.0.1:8080:8080"
- "1935:1935"
volumes:
- ./data:/app/data
docker compose up -d
127.0.0.1 : c'est le seul écart avec l'exemple de la documentation, qui publie les deux ports. Sa page sur les proxys inverses demande de garder Owncast hors d'Internet, car il écoute sur toutes les interfaces par défaut, et Docker publie un port sur toutes les adresses du serveur s'il n'en reçoit aucune. L'interface web s'atteint alors par le seul proxy inverse.data garde la base de données et ses sauvegardes sur le serveur, hors du conteneur : c'est lui qui se sauvegarde et se déplace.latest suit la dernière version publiée ; 0.3.0 fixe une version.L'autre voie de la documentation est un script qui télécharge la dernière version d'Owncast pour votre plateforme, et ffmpeg s'il n'est pas déjà présent. Il installe tout dans un dossier owncast, sous le dossier courant. La documentation déconseille de le lancer en root et recommande de lire un script distant avant de l'exécuter :
curl -s https://owncast.online/install.sh | bash
Pour qu'Owncast démarre avec le serveur et redémarre seul après un arrêt, la documentation fournit un service systemd, à adapter au dossier et au compte choisis :
[Unit]
Description=Owncast
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/owncast
ExecStart=/opt/owncast/owncast
User=owncast
Group=owncast
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now owncast
L'administration se trouve sur /admin. Owncast démarre avec des identifiants connus de tous, que la documentation demande de changer dès la première connexion :
| Réglage | Valeur par défaut | Son rôle |
|---|---|---|
| Identifiant d’administration | admin | La connexion à /admin |
| Mot de passe d’administration | abc123 | La connexion à /admin |
| Clé de diffusion | abc123 | L’envoi du direct par votre logiciel de diffusion |
Pour faire ce changement avant d'ouvrir l'interface au public, passez par un tunnel SSH : le port 8080 du serveur apparaît sur votre poste, à l'adresse http://localhost:8080/admin. Ajoutez -p et le port SSH affiché dans votre espace client.
ssh -L 8080:127.0.0.1:8080 utilisateur@live.example.com
!@#$%^&*, et aucun tiret.--adminpassword, qui l'enregistre dans la base.Le mot de passe d'administration et la clé de diffusion valent tous deux abc123 au départ, mais ce sont deux réglages distincts : changez les deux.
Owncast ne gère pas HTTPS lui-même. La documentation place devant lui un proxy inverse, qui écoute sur les ports 80 et 443, obtient le certificat, chiffre le trafic et transmet en clair à Owncast sur le port 8080. Sans HTTPS, les navigateurs signalent la page comme non sécurisée, et une page en HTTPS ne peut pas intégrer votre vidéo ni votre chat.
/ws, qui porte le chat. Un proxy qui la bloque coupe le chat.X-Forwarded-For pour bloquer l'adresse IP d'un utilisateur banni du chat. La documentation demande que le proxy pose lui-même cet en-tête.La documentation suggère Caddy si vous n'avez pas d'autre préférence : il obtient seul un certificat Let's Encrypt et transmet WebSocket sans réglage. Voici son exemple de Caddyfile, où la ligne tls donne l'adresse e-mail du compte Let's Encrypt :
live.example.com {
encode gzip
reverse_proxy 127.0.0.1:8080
tls contact@example.com
}
Avec Nginx, la documentation insiste sur WebSocket : c'est l'oubli qui désactive le chat. Ajoutez ce bloc map dans la section http de /etc/nginx/nginx.conf :
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
Ce bloc de site reprend celui de la documentation, sur le port 80 pour laisser Certbot poser HTTPS :
server {
listen 80;
listen [::]:80;
server_name live.example.com;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Authorization $http_authorization;
proxy_pass_header Authorization;
proxy_pass http://127.0.0.1:8080;
}
}
sudo nginx -t
sudo certbot --nginx
Owncast accepte tout logiciel qui diffuse en RTMP vers un serveur distant. La clé n'est acceptée que sur le chemin /live. Dans OBS :
rtmp://live.example.com:1935/live.Un logiciel sans champ pour la clé accepte l'adresse complète, rtmp://live.example.com:1935/live/votre-cle.
Sur un VPS Simafri, l'adresse IPv6 du serveur peut ouvrir le port de votre choix : votre logiciel de diffusion atteint le port 1935 par cette adresse, sous un nom qui porte l'enregistrement AAAA. Sur un réseau Docker en IPv4, comme ici, Docker relie le port de l'adresse IPv6 du serveur au conteneur. Ouvrez ce port si ufw est actif, puis testez depuis votre poste :
sudo ufw allow 1935/tcp
nc -6 -vz live.example.com 1935
Pour un autre besoin, dites-nous ce que vous visez, nous regardons l'adressage avec vous.
2.| Résolution | Images par seconde | Débit suggéré |
|---|---|---|
| 1920 × 1080 | 60 | 5 000 kbit/s |
| 1920 × 1080 | 30 | 4 500 kbit/s |
| 1280 × 720 | 60 | 4 000 kbit/s |
| 1280 × 720 | 30 | 3 000 kbit/s |
Les qualités proposées aux spectateurs se règlent dans « Configuration », « Video ». Plusieurs qualités permettent au lecteur de choisir celle que sa connexion tient : la documentation recommande une seconde qualité, de 1 000 à 2 000 kbit/s, à côté d'une haute qualité de 4 000 à 6 000 kbit/s, une fois la première configuration testée.
Le passthrough transmet la vidéo reçue sans la réencoder : il économise presque tout le processeur de cette qualité, et ignore ses réglages de débit, de résolution et de cadence. La documentation le réserve aux utilisateurs avertis : les spectateurs reçoivent exactement ce qu'envoie votre logiciel, ce que certains lecteurs ne savent pas lire, et la latence augmente. Testez la lecture sur les appareils qui comptent pour vous avant de vous y fier.
La latence se règle par le tampon de latence, sur la même page. Chaque niveau échange un peu de délai contre de la stabilité, et un changement s'applique au direct suivant :
| Niveau | Durée d’un segment | Segments dans la liste | Latence approximative |
|---|---|---|---|
| 0, le plus bas | 1 seconde | 25 | environ 5 secondes |
| 1 | 2 secondes | 15 | environ 8 à 9 secondes |
| 2, par défaut | 3 secondes | 10 | environ 10 secondes |
| 3 | 4 secondes | 8 | environ 15 secondes |
| 4, le plus haut | 5 secondes | 5 | environ 18 secondes |
La version 0.3.0 ajoute aussi, côté spectateur, l'option « Minimize latency » du lecteur, qui accélère légèrement la lecture pour se rapprocher du direct, et un réglage de lecture automatique, désactivé par défaut.
Owncast peut envoyer ses segments vidéo vers un stockage compatible S3, d'où les spectateurs les téléchargent. Le serveur continue de servir la liste de lecture principale, les API et le chat ; la vidéo, qui fait presque toute la bande passante, part du stockage. Votre serveur n'envoie alors qu'une copie de chaque qualité : dans l'exemple de la documentation, 6,5 Mbit/s pour deux qualités à 5 000 et 1 500 kbit/s, que vous ayez zéro ou mille spectateurs. Le processeur, lui, garde la même charge.
CORS ou Access-Control-Allow-Origin dans la console du navigateur vient presque toujours de là.Ce stockage sert le direct, pas l'archive : Owncast efface au fil de l'eau les segments plus anciens que la liste de lecture, plus une vingtaine de segments de marge. Le compartiment ne garde que les dernières minutes du flux.
Pour des spectateurs répartis dans le monde, la documentation décrit aussi un réseau de diffusion de contenu (CDN) placé devant Owncast, avec un nom d'origine distinct et le réglage « Websocket host override », qui garde le chat relié au serveur d'origine.
Le chat se règle dans « Configuration », « Chat ». Par défaut, il n'y a aucun modérateur : la documentation conseille au moins de vous nommer vous-même, depuis la page « Users » de l'administration.
La documentation rappelle que le blocage d'adresse IP se contourne, avec un VPN par exemple : il freine les abus, et la modération reste l'affaire de chaque chaîne. D'où l'intérêt de modérateurs nommés pour vos directs les plus suivis.
Owncast sauvegarde sa base de données lui-même, une fois par heure, dans data/backup/owncastdb.bak. L'option --backupdir change ce dossier. Voici ce que contient le dossier de données :
| Élément | Ce qu’il garde | Dans la sauvegarde horaire |
|---|---|---|
owncast.db | La configuration, les utilisateurs, l’historique du chat et les jetons d’accès | Oui |
backup/ | La sauvegarde horaire de la base | Elle-même |
Émojis personnalisés, public/ | Les fichiers que vous avez ajoutés | Non |
| Plugins | Les plugins installés et leurs données, depuis la 0.3.0 | Non |
| Données GeoIP | La provenance géographique des spectateurs | Non |
Pour une reprise complète, ou pour déplacer l'instance, la documentation demande de sauvegarder tout le dossier data : le copier sur une nouvelle installation emporte tout. Avec Docker, service arrêté :
docker compose down
tar -czf owncast-$(date +%F).tar.gz data
docker compose up -d
Planifiez cette copie au rythme de vos directs, et envoyez-la hors du serveur. Posées sur son disque, ces archives entrent aussi dans ses sauvegardes de nuit.
La restauration ramène la base à l'heure de la sauvegarde : tout changement postérieur est perdu. Copiez d'abord la base actuelle en lieu sûr, puis :
--restoreDatabase et le chemin du fichier de sauvegarde : il restaure la base, puis s’arrête.docker compose stop
docker compose run --rm owncast --restoreDatabase data/backup/owncastdb.bak
docker compose up -d
Avec Docker, la documentation donne deux commandes, depuis le dossier du compose.yaml. Le dossier de données reste en place :
docker compose pull
docker compose up -d
Avec l'installateur, la note de la version 0.3.0 décrit la mise à jour : arrêtez le service, mettez de côté les fichiers de l'interface web que vous avez personnalisés, relancez l'installateur avec le compte qui fait tourner Owncast, puis redémarrez. Le script range lui-même une archive du dossier data dans owncast-install-backups avant de remplacer la version.
sudo systemctl stop owncast
su -c "curl https://owncast.online/install.sh | bash" owncast
sudo systemctl start owncast
La version 0.3.0 du 3 septembre 2026 apporte les plugins, les flux mis en avant, la lecture automatique et le choix de l'interface d'écoute de RTMP. Sa note demande de lire les changements avant de mettre à jour, car ils touchent votre instance : suivez ces notes à chaque version, et faites une copie du dossier data juste avant.
L'auto-hébergement demande de tenir le serveur en plus de l'application. Sur un VPS infogéré, nos équipes prennent le serveur en main et suivent votre instance de manière proactive ; Owncast reste votre logiciel, avec ses réglages et ses données.
| Sujet | Nos équipes | Vous |
|---|---|---|
| Le serveur | Mises à jour du système et de la sécurité, interventions sur le serveur comprises | Le moment qui convient à votre activité |
| La supervision | Serveur suivi 24 h/24 et 7 j/7, avec intervention sans attendre votre appel | La lecture des journaux de votre instance |
| Owncast | Suivi proactif : erreurs, lenteurs, charge du processeur et espace disque repérés, correction recommandée | Son installation, ses mises à jour et ses réglages, que vous appliquez, vous ou votre assistant IA |
| Les directs et le chat | Le serveur qui les porte, surveillé et sauvegardé | Les clés de diffusion, les qualités vidéo, les modérateurs et les règles du chat |
| Les sauvegardes | Chaque nuit, chiffrées et gardées hors de la machine ; restauration comprise | Les copies propres à Owncast, et la demande de restauration, quand vous en avez besoin |
| La migration | Votre serveur actuel migré, offert | Le moment de la bascule |
Si vous préférez que nos équipes interviennent dans l'application elle-même, cette prestation se facture à l'heure ou au forfait, avec un chiffrage communiqué avant l'intervention.
Avec un VPS infogéré Simafri, nos équipes tiennent à jour le serveur de votre instance Owncast, le surveillent jour et nuit et interviennent sans attendre votre appel ; elles suivent aussi votre instance de manière proactive et vous recommandent les corrections utiles, que vous appliquez, vous ou votre assistant IA. Les sauvegardes sont chiffrées chaque nuit et gardées hors de la machine, leur restauration est comprise, et la migration de votre serveur actuel est offerte.
Oui. Owncast est sous licence MIT : vous pouvez l'utiliser, le modifier et le redistribuer en entreprise sans licence à acheter, en gardant sa notice de copyright. Reste le coût du serveur qui le fait tourner.
Tout dépend des qualités proposées. La documentation compte en règle approximative un cœur par qualité transcodée à 30 images par seconde, et presque rien pour une qualité en passthrough. Le nombre de spectateurs ne change pas la charge du processeur.
Le débit de pointe vaut le débit du flux multiplié par le nombre de spectateurs : 25 spectateurs à 5 000 kbit/s demandent 125 Mbit/s en sortie. Un stockage objet compatible S3 peut servir la vidéo à la place du serveur, qui n'envoie alors qu'une copie de chaque qualité.
Créez un compose.yaml avec l'image owncast/owncast, le port 8080 publié sur 127.0.0.1, le port 1935 pour RTMP et un dossier data monté sur /app/data, puis lancez docker compose up -d. Placez ensuite un proxy inverse en HTTPS devant le port 8080.
L'administration, sur /admin, s'ouvre avec l'identifiant admin et le mot de passe abc123, et la clé de diffusion vaut aussi abc123. Ce sont deux réglages distincts : changez les deux dès la première connexion, dans Configuration, Server Setup.
Dans OBS, choisissez un service personnalisé, saisissez rtmp://votre-serveur:1935/live et votre clé de diffusion. Envoyez de la vidéo H.264 et de l'audio AAC, avec une image clé toutes les 2 secondes.
Owncast sauvegarde sa base chaque heure dans data/backup/owncastdb.bak. Cette sauvegarde ne couvre que la base : pour une reprise complète, copiez tout le dossier data hors du serveur. La restauration se fait avec l'option --restoreDatabase.
Un VPS infogéré couvre le serveur : système, sécurité, supervision et sauvegardes. Nos équipes suivent aussi votre instance de manière proactive et vous recommandent les corrections utiles, que vous appliquez. Une intervention dans l'application se facture à l'heure ou au forfait.
Simafri
Parlons de votre projet
Dites-nous en deux mots ce qu'il vous faut : on revient vers vous rapidement.
Merci ! Votre demande a bien été envoyée. Nous vous répondrons rapidement.
Vous préférez l'email ? Écrivez-nous à support@simafri.com.