Choisissez le script correspondant à votre plateforme. Une installation native crée l'environnement Python dans .dailies-delivery/runtime/ et conserve configuration, données, médias, journaux et sauvegardes dans le même répertoire technique.
Une instance peut fonctionner seule, comme membre d'une fédération, ou avec un Federation Master séparé. Les administrateurs peuvent aussi publier une Bibliothèque fédérée de ressources en lecture seule ; consultez le guide de la Fédération pour la configurer.
Les volumes persistants doivent être conservés hors de l'image.
Le Federation Master est un plan de contrôle (identité, clés publiques, enrôlement, présence, révocation). Il ne transporte ni média ni donnée métier. Dailies Delivery fonctionne parfaitement sans Master, en mode autonome.
Deux façons de l'obtenir : intégré (mode « Master + Dailies », un seul serveur, recommandé pour la plupart des cas), ou en processus séparé (Docker ou manuel, pour un cluster à plusieurs Masters).
Depuis la version 1.1.6, choisir « Master + Dailies » dans Préférences › Fédération DailiesDelivery fait tourner le Master dans le même processus, sur le même port que Dailies Delivery — aucun conteneur, aucun service, aucun port supplémentaire à ouvrir.
/federation-master/admin).Un autre Dailies Delivery s'enrôle avec l'URL https://VOTRE-SERVEUR:9999/federation-master (le même port que Dailies, avec le suffixe /federation-master) et le code généré.
Depuis la version 1.1.7, plusieurs Dailies Delivery en mode « Master + Dailies » peuvent se regrouper en un seul cluster Raft, sans jamais partager de secret à la main :
https://serveur-1:9999/federation-master), le code, et l'URL publique de ce second serveur./federation-master/admin → section Cluster Raft → « Promouvoir un Learner », avec son identifiant affiché dans le panneau Fédération du second serveur).Limite connue : un serveur qui a déjà son propre historique de Master local ne peut pas rejoindre un autre cluster (l'adhésion est refusée) — cela évite de mélanger deux historiques incompatibles. Changer de mode, ou rejoindre un cluster, nécessite toujours un redémarrage ; il n'y a pas de bascule à chaud.
Utile si vous voulez plusieurs Masters répliqués (Raft) pour la tolérance de panne, indépendamment du cycle de vie d'un Dailies Delivery précis.
payload/federation-master/ (avec son propre Dockerfile, docker-compose.yml, .env.example, README.md et PRODUCTION_DEPLOYMENT.md)..dailies-delivery/master/.Le point d'entrée du Master est la commande python -m videohub_federation.app (c'est aussi ce que lance son image Docker).
Prérequis : Python 3.12 (la version utilisée par l’image Docker). Depuis le dossier federation-master (ou .dailies-delivery/master) :
Linux / macOS :
python3 -m venv venv && . venv/bin/activate pip install -r requirements.txt export VFP_DATA_DIR=./data export VFP_MASTER_ADMIN_TOKEN="choisissez-un-long-jeton-admin" export VFP_MASTER_CLUSTER_TOKEN="choisissez-un-long-jeton-cluster" export VFP_RAFT_NODE_ID=master-1 export VFP_PORT=8443 python -m videohub_federation.app
Windows (PowerShell) :
py -m venv venv; .\venv\Scripts\Activate.ps1 pip install -r requirements.txt $env:VFP_DATA_DIR=".\data" $env:VFP_MASTER_ADMIN_TOKEN="choisissez-un-long-jeton-admin" $env:VFP_MASTER_CLUSTER_TOKEN="choisissez-un-long-jeton-cluster" $env:VFP_RAFT_NODE_ID="master-1" $env:VFP_PORT="8443" python -m videohub_federation.app
VFP_MASTER_ADMIN_TOKEN, les actions d'administration sont refusées (erreur 503).VFP_TLS_CERTFILE et VFP_TLS_KEYFILE, le Master répond en HTTP non chiffré : réservé aux tests sur un réseau de confiance. En production, fournissez un certificat (voir PRODUCTION_DEPLOYMENT.md).VFP_DATA_DIR (base federation.db). Supprimez ce dossier pour repartir de zéro.VFP_RAFT_PEERS vide), le Master s'élit leader lui-même environ 2 à 3 secondes après le démarrage.curl http://127.0.0.1:8443/health
La réponse doit contenir "status":"ok" et, après quelques secondes, "role":"leader". La console d'administration est disponible sur http://ADRESSE:8443/admin (saisissez le jeton admin).
curl -X POST -H "Authorization: Bearer VOTRE_JETON_ADMIN" \ "http://ADRESSE:8443/api/v1/master/enrollment-codes?ttl_seconds=900"
http://ADRESSE:8443) et le code, puis cliquez sur « 🔑 Enrôler ».Le Master (port 8443 par défaut) et un Dailies Delivery natif (port 9999) peuvent tourner sur la même machine sans conflit.
Pour installer ensemble Dailies Delivery et le Federation Master à partir des images publiées, suivez le guide Docker illustré.
Dans federation-master/ : copiez .env.example en .env, remplacez les deux jetons CHANGE_ME_…, placez vos certificats dans ./tls/ (server.crt, server.key, ca.crt), puis lancez docker compose up -d --build. Le fichier fourni active par défaut TLS et le certificat client (mTLS) : sans ces certificats, le conteneur refuse de démarrer.
Vérification : le démarrage manuel ci-dessus a été exécuté et validé (état de santé, élection du leader, création d'un code d'enrôlement) sur Linux. Le démarrage Docker est décrit d'après les fichiers fournis ; la version Windows en PowerShell n'a pas été exécutée.
Si votre Master (ou un autre Dailies Delivery fédéré) utilise un certificat auto-signé, un Dailies Delivery qui essaie de le joindre en HTTPS refuse la connexion par défaut (erreur CERTIFICATE_VERIFY_FAILED) — c'est la vérification normale d'un certificat non reconnu, pas un dysfonctionnement.
Dans Préférences › Fédération DailiesDelivery, bloc « 🔒 Certificat auto-signé » : bouton « Récupérer le certificat » (le certificat présenté par l'URL du Master saisie juste au-dessus est téléchargé et son empreinte SHA-256 affichée — comparez-la à celle du serveur distant), puis « Faire confiance à ce certificat ». Cette confiance s'ajoute au magasin de certificats standard, elle ne le remplace pas : un Master avec un certificat public reconnu continue de fonctionner sans aucun réglage.
Le serveur natif écoute sur le réseau local sur le port 9999 et utilise HTTPS. Depuis une autre machine, utilisez https://ADRESSE-IP-DU-PC:9999/. L’installation Windows crée automatiquement une règle de pare-feu pour le port 9999 sur les profils Domaine et Privé.
Important : https://localhost:9999/ désigne uniquement le PC serveur. Pour un accès depuis Internet, il faut en plus une règle de pare-feu/routeur et une redirection de port (NAT). Le certificat auto-signé doit aussi être accepté ou remplacé par un certificat reconnu.