Kiro /

VOS MÉDIAS. VOTRE SERVEUR.

Installer Kiro Media Server

Du premier téléchargement à votre première séance : toutes les étapes pour installer et connecter votre serveur.

Les distributions autonomes validées sont proposées dans la section Téléchargements de https://kiromedia.tv. Choisissez votre système et votre processeur parmi les cibles disponibles. Ces archives incluent Node.js, FFmpeg, FFprobe et les dépendances de Kiro ; leur démarrage ne nécessite pas d’installation de ces outils. La release 0.2.3 publiée le 10 octobre 2026 couvre Windows x64, Linux x64 et macOS Apple Silicon.

Installation autonome

SystèmeProcesseurArchive
WindowsIntel / AMD 64 bitskiro-media-server-win32-x64.zip
macOSApple Siliconkiro-media-server-darwin-arm64.tar.gz
macOSIntelNon publiée pour 0.2.3
LinuxIntel / AMD 64 bitskiro-media-server-linux-x64.tar.gz
LinuxARM 64 bitsNon publiée pour 0.2.3

Les builds macOS ciblent macOS 13.5 ou supérieur. Les builds Linux nécessitent glibc 2.35 ou supérieur, comme Ubuntu 22.04 ; ils ne sont pas destinés à Alpine ou à tous les firmwares NAS. Pour un NAS, privilégiez la procédure Docker ci-dessous. Windows ARM ne dispose pas d’une archive native dédiée.

  1. Télécharger l’archive correspondante et SHA256SUMS.txt. Vérifier sa somme SHA-256 avec shasum -a 256 NOM_ARCHIVE sur macOS, sha256sum NOM_ARCHIVE sur Linux ou Get-FileHash NOM_ARCHIVE -Algorithm SHA256 dans PowerShell.
  2. Extraire dans un dossier local où vous pouvez écrire. Éviter les dossiers système protégés.
  3. Sur Windows, lancer start.cmd. Sur macOS ou Linux, ouvrir un terminal dans le dossier extrait et exécuter ./start.sh.
  4. Ouvrir http://localhost:4500 et activer le serveur avec votre compte Kiro en suivant les étapes ci-dessous. Ajouter ensuite les dossiers de médias et lancer leur analyse.

Au premier démarrage, Kiro crée .env avec un secret aléatoire et sa base SQLite dans data/. Par défaut, le serveur écoute uniquement sur votre ordinateur. Pour l’accès depuis le réseau local, arrêter le serveur, définir HOST=0.0.0.0, PUBLIC_BASE_URL=http://nas.local:4500 et CORS_ORIGINS=http://nas.local:4500,http://127.0.0.1:4500 dans .env, remplacer le nom réseau par celui de votre machine, puis redémarrer.

Conserver .env et data/ lors des mises à jour. Sauvegarder la base avant de remplacer l’application. La base SQLite doit rester sur un disque local ; les vidéos peuvent provenir d’un partage réseau monté.

FFmpeg est exécuté comme un programme distinct. Les licences des composants sont incluses dans l’archive ; leurs sources et la recette de construction sont disponibles dans kiro-runtime-sources.tar.gz. L’archive n’est pas un installateur signé : les protections du système peuvent demander une confirmation d’ouverture.

Installation portable avec dépendances externes

Cette option utilise kiro-media-server.tar.gz et nécessite Node.js 26 ainsi que FFmpeg/FFprobe installés sur la machine.

  1. Extraire l’archive dans un dossier local et ouvrir un terminal dans ce dossier.
  2. Exécuter node scripts/lib/install-production-dependencies.js. Cette étape utilise les binaires SQLite précompilés et prépare Prisma ; elle vérifie que SQLite fonctionne sur votre système.
  3. Copier .env.example vers .env. Générer AUTH_SECRET avec node -e "console.log(require('node:crypto').randomBytes(32).toString('hex'))". Renseigner PUBLIC_BASE_URL, CORS_ORIGINS et MEDIA_ROOTS selon votre installation. Exemple LAN : PUBLIC_BASE_URL=http://nas.local:4500 et CORS_ORIGINS=http://nas.local:4500,http://127.0.0.1:4500 ; remplacer ce nom par celui de votre serveur.
  4. Exécuter npm start, puis ouvrir le serveur depuis localhost ou un tunnel SSH pour son activation avec votre compte Kiro. Ajouter une vidéothèque avec le chemin réel de vos médias, puis lancer son analyse.

FFmpeg et FFprobe doivent être dans PATH. SQLite utilise data/kiro.sqlite sur un disque local : ne pas placer la base sur SMB/NFS. Les médias peuvent être sur un partage monté. Les modules natifs sont installés sur la machine cible ; des outils de compilation peuvent être nécessaires si aucun binaire compatible n’est disponible.

Activer le serveur avec votre compte Kiro

  1. Ouvrir le Media Server depuis http://localhost:4500 sur la machine qui l’héberge. Pour un serveur distant ou un NAS, utiliser un tunnel SSH vers son port, puis ouvrir l’adresse locale du tunnel. Cette preuve locale réserve la première activation à quelqu’un qui contrôle la machine.
  2. Dans l’écran « Activer avec mon compte Kiro », cliquer sur « Se connecter à Kiro ». Se connecter à https://kiromedia.tv avec votre compte existant, ou y créer votre compte si nécessaire.
  3. Dans « Mon compte », générer un code de rattachement, valable dix minutes. Revenir au Media Server, saisir ce code et le nom souhaité, puis cliquer sur « Activer mon serveur ».
  4. Votre compte Kiro devient propriétaire et administrateur du serveur. Aucune inscription locale supplémentaire ni second mot de passe à choisir n’est nécessaire. Depuis https://kiromedia.tv/app, sélectionner ensuite ce serveur pour accéder à votre bibliothèque par le relais central.

Le Media Server doit rester allumé et pouvoir joindre le Central en HTTPS/WebSocket sortant. Pour une connexion directe distante, utiliser HTTPS avec un certificat reconnu. Le premier rattachement par preuve locale ne s’effectue pas depuis un lien de relais public.

Les serveurs déjà installés avec un administrateur local conservent cet accès. Leur propriétaire peut toujours utiliser Administration → Compte Kiro pour le rattachement. Un serveur dont le seul propriétaire est central ne peut pas être détaché depuis cette page, car cela supprimerait son accès administrateur.

NAS avec Docker : construire depuis l’archive compilée

Le Dockerfile runtime téléchargeable reprend celui validé sur Linux AMD64 et ARM64. Aucun accès au dépôt source privé n’est nécessaire. Docker doit être disponible sur votre NAS Linux. Le mode réseau hôte conserve la preuve d’accès local nécessaire au premier rattachement. Le conteneur s’exécute avec l’utilisateur non privilégié node (UID 1000).

Dans un dossier vide, placer le fichier téléchargé Dockerfile.media-server et l’archive portable kiro-media-server.tar.gz dans un sous-dossier artifacts/, puis exécuter :

docker build -f Dockerfile.media-server -t kiro-media-server:local .
docker volume create kiro-data

Créer un fichier privé media.env avec les paramètres suivants, en remplaçant le secret et le nom réseau :

HOST=127.0.0.1
PORT=4500
AUTH_SECRET=REMPLACER_PAR_UN_SECRET_ALEATOIRE_32_CARACTERES_MINIMUM
PUBLIC_BASE_URL=http://nas.local:4500
CORS_ORIGINS=http://nas.local:4500,http://127.0.0.1:4500
MEDIA_ROOTS=/media
KIRO_CENTRAL_URL=https://kiromedia.tv
FFMPEG_HARDWARE_ACCELERATION=false

Démarrer en remplaçant /chemin/videos par votre dossier de médias, lisible par l’UID 1000 :

docker run -d --name kiro-media-server --restart unless-stopped \
  --network host --env-file media.env \
  -v kiro-data:/data -v /chemin/videos:/media:ro \
  kiro-media-server:local

Le volume kiro-data doit résider sur le stockage local du NAS. Pour le premier rattachement, utiliser un tunnel SSH vers le port 4500 du NAS et ouvrir http://127.0.0.1:4500 : cette étape exige un accès local au serveur. Suivre les étapes de rattachement ci-dessus avec votre compte Kiro existant, puis ajouter la vidéothèque /media. L’accès habituel peut ensuite utiliser le portail Kiro ou le tunnel local. Pour autoriser aussi un accès direct sur le réseau local à http://nas.local:4500, remplacer HOST=127.0.0.1 par HOST=0.0.0.0 dans media.env, puis recréer le conteneur en conservant le volume kiro-data. Cette configuration utilise le transcodage CPU ; l’accélération GPU dépend du NAS et n’est pas configurée ici. Sauvegarder la base avant les mises à jour ; conserver le volume lors du remplacement du conteneur.

Le point d’entrée Docker supervisé initialise le code applicatif dans /data/kiro-server et conserve SQLite et la configuration dans le volume persistant. Conserver ce volume lors des mises à jour ou du remplacement du conteneur. Les procédures de mise à jour supervisée et de retour arrière doivent être validées sur l’image exacte livrée ; la CI d’activation seule ne les prouve pas.