Install the serverInstaller le serveur
One file to copy, one command to type — or a few clicks in Portainer or your NAS. Then open the wizard in your browser.Un fichier à copier, une commande à taper — ou quelques clics dans Portainer ou votre NAS. Puis ouvrez l’assistant dans votre navigateur.
With a terminal (Linux, Mac, Windows)Avec un terminal (Linux, Mac, Windows)
On the machine that will run the server, open a terminal and type these three lines. The second one downloads the Tentacle + Jellyfin stack; for Tentacle alone, replace tentacle-full with tentacle-only.Sur la machine qui fera tourner le serveur, ouvrez un terminal et tapez ces trois lignes. La deuxième télécharge la pile Tentacle + Jellyfin ; pour Tentacle seul, remplacez tentacle-full par tentacle-only.
mkdir tentacle && cd tentacle
curl -fsSLo compose.yaml https://raw.githubusercontent.com/Knaox/Tentacle-TV/main/stacks/tentacle-full/compose.yaml
docker compose up -dmkdir tentacle && cd tentacle— creates a folder for the stack and enters it. Keep it: every later command runs from here.mkdir tentacle && cd tentacle— crée un dossier pour la pile et y entre. Gardez-le : toutes les commandes suivantes se lancent d’ici.curl … compose.yaml— downloads the compose file.curl … compose.yaml— télécharge le fichier compose.docker compose up -d— downloads the images (a few minutes the first time) and starts everything in the background.docker compose up -d— télécharge les images (quelques minutes la première fois) et démarre tout en arrière-plan.
When the prompt comes back, the server is starting. Check it:Quand l’invite revient, le serveur démarre. Vérifiez-le :
docker compose psYou should see tentacle and jellyfin “running” (jellyfin-init has finished its job: “exited” is normal). With tentacle-only, only tentacle.Vous devez voir tentacle et jellyfin « running » (jellyfin-init a fini son travail : « exited » est normal). Avec tentacle-only, seulement tentacle.
With PortainerAvec Portainer
- Stacks › Add stack. Name:
tentacle.Stacks › Add stack. Nom :tentacle. - Web editor: paste the content of the
tentacle-fullstack (from GitHub: “View” above, then the copy button of the file).Web editor : collez le contenu detentacle-full(sur GitHub : « Voir » plus haut, puis le bouton de copie du fichier). - Optional: in Environment variables, add
MEDIA_PATHwith the folder of your videos (see “Settings” below).Facultatif : dans Environment variables, ajoutezMEDIA_PATHavec le dossier de vos vidéos (voir « Réglages » plus bas). - Deploy the stack.Deploy the stack.
https://github.com/Knaox/Tentacle-TV, reference refs/heads/main, compose path stacks/tentacle-full/compose.yaml. “Pull and redeploy” then also picks up the latest stack file.Au lieu de Web editor, choisissez Repository : URL https://github.com/Knaox/Tentacle-TV, référence refs/heads/main, chemin stacks/tentacle-full/compose.yaml. « Pull and redeploy » reprend alors aussi le dernier fichier de pile.On a Synology NASSur un NAS Synology
- Install Container Manager from the Package Center.Installez Container Manager depuis le Centre de paquets.
- In File Station, create a folder
docker/tentacle, and your media folder if you have none (e.g./volume1/media).Dans File Station, créez un dossierdocker/tentacle, et votre dossier des médias si vous n’en avez pas (par ex./volume1/media). - Container Manager › Project › Create: name
tentacle, pathdocker/tentacle, source “Create docker-compose.yml”, and paste the stack.Container Manager › Projet › Créer : nomtentacle, chemindocker/tentacle, source « Créer docker-compose.yml », et collez la pile. - In the pasted text, replace
${MEDIA_PATH:-./media}(twice) by/volume1/media, and${PUID:-1000}/${PGID:-1000}by the ids of your account (often1026and100).Dans le texte collé, remplacez${MEDIA_PATH:-./media}(deux fois) par/volume1/media, et${PUID:-1000}/${PGID:-1000}par les identifiants de votre compte (souvent1026et100). - Next › Done: the project builds and starts.Suivant › Terminé : le projet se construit et démarre.
"3300:3000", then open http://<nas>:3300.Certains NAS utilisent le port 3000 ou 8096 pour leurs propres applications. Changez la partie gauche de la ligne de port, par ex. "3300:3000", puis ouvrez http://<nas>:3300.On UnraidSur Unraid
Install the Docker Compose Manager plugin (Apps tab), then Add new stack, name it tentacle, edit the stack, paste the compose file and Compose up. Use /mnt/user/media for MEDIA_PATH, and 99 / 100 for PUID / PGID. Portainer works too.Installez le greffon Docker Compose Manager (onglet Apps), puis Add new stack, nommez-la tentacle, éditez la pile, collez le fichier compose et Compose up. Utilisez /mnt/user/media pour MEDIA_PATH, et 99 / 100 pour PUID / PGID. Portainer marche aussi.
Settings (optional)Réglages (facultatifs)
Nothing is mandatory: every value has a default that works. To change one, create a file named .env next to compose.yaml — one line per setting — then run docker compose up -d again.Rien n’est obligatoire : chaque valeur a un défaut qui marche. Pour en changer une, créez un fichier nommé .env à côté de compose.yaml — une ligne par réglage — puis relancez docker compose up -d.
MEDIA_PATH=/srv/media
TZ=Europe/Paris
PUID=1000
PGID=1000| SettingRéglage | DefaultDéfaut | What it doesÀ quoi il sert |
|---|---|---|
MEDIA_PATH | ./media | The folder of your videos on this machine (Tentacle + Jellyfin stack). Jellyfin sees it as /media; films and series are created inside if missing.Le dossier de vos vidéos sur cette machine (pile Tentacle + Jellyfin). Jellyfin le voit en /media ; films et series y sont créés s’ils manquent. |
TENTACLE_PORT | 3000 | Tentacle’s port on this machine.Le port de Tentacle sur cette machine. |
JELLYFIN_PORT | 8096 | Jellyfin’s port on this machine (Tentacle + Jellyfin stack).Le port de Jellyfin sur cette machine (pile Tentacle + Jellyfin). |
JELLYFIN_DISCOVERY_PORT | 7359 | Jellyfin’s discovery port (UDP). Change it if another Jellyfin runs here.Le port de découverte de Jellyfin (UDP). À changer si un autre Jellyfin tourne ici. |
PUID / PGID | 1000 | The account that owns your files (id -u and id -g). Tentacle and Jellyfin never run as root.Le compte propriétaire de vos fichiers (id -u et id -g). Tentacle et Jellyfin ne tournent jamais en root. |
TZ | Europe/Paris | The time zone.Le fuseau horaire. |
TENTACLE_VERSION | latest | Pin a version (e.g. v1.24.0) to update only when you decide.Figer une version (par ex. v1.24.0) pour ne mettre à jour que quand vous le décidez. |
tentacle.db, created on the first start in its volume (The database).Pas de base à régler non plus : Tentacle garde ses données dans un fichier, tentacle.db, créé au premier démarrage dans son volume (La base de données).Open the wizardOuvrir l’assistant
In a browser, open http://<address-of-the-machine>:3000 — for example http://192.168.1.20:3000. On the machine itself, http://localhost:3000 works too.Dans un navigateur, ouvrez http://<adresse-de-la-machine>:3000 — par exemple http://192.168.1.20:3000. Sur la machine elle-même, http://localhost:3000 marche aussi.
Finding the machine’s addressTrouver l’adresse de la machine
- Linux:
hostname -I(the first number, e.g.192.168.1.20).Linux :hostname -I(le premier nombre, par ex.192.168.1.20). - Synology: Control Panel › Network › Network Interface. Unraid: the top right of the web page.Synology : Panneau de configuration › Réseau › Interface réseau. Unraid : en haut à droite de sa page web.
- Mac: System Settings › Wi-Fi › Details. Windows:
ipconfigin a terminal (“IPv4 Address”).Mac : Réglages système › Wi-Fi › Détails. Windows :ipconfigdans un terminal (« Adresse IPv4 »). - Or your router’s page, in the list of connected devices.Ou la page de votre box, dans la liste des appareils connectés.
From your home network, the wizard opens without any code. From elsewhere, it asks for one: where to find it.Depuis le réseau de la maison, l’assistant s’ouvre sans aucun code. D’ailleurs, il en demande un : où le trouver.
Update the serverMettre à jour le serveur
Administration › Overview tells you when a new version is out, with the command to copy. Tentacle never drives Docker itself: you decide when.Administration › Vue d’ensemble vous dit quand une nouvelle version sort, avec la commande à copier. Tentacle ne pilote jamais Docker lui-même : c’est vous qui décidez quand.
| You useVous utilisez | To updatePour mettre à jour |
|---|---|
| A terminalUn terminal | docker compose pull && docker compose up -d (from the stack’s folder)(depuis le dossier de la pile) |
| Portainer | Stacks › tentacle › Pull and redeploy (or Editor › Update the stack with “Re-pull image” ticked).Stacks › tentacle › Pull and redeploy (ou Editor › Update the stack avec « Re-pull image » coché). |
| Synology | Container Manager › Project › tentacle › Action › Build (it downloads the new images).Container Manager › Projet › tentacle › Action › Construire (il télécharge les nouvelles images). |
| Unraid | Docker Compose Manager › Update stack.Docker Compose Manager › Update stack. |
Your settings, accounts and libraries stay: they live in volumes, not in the image.Vos réglages, comptes et bibliothèques restent : ils vivent dans des volumes, pas dans l’image.
Turn off the web app (optional)Couper l’application web (facultatif)
If you only watch from the apps (phone, TV, computer), you can turn off the web app that the server shows in a browser. Add this line to .env and restart:Si vous ne regardez que depuis les applications (téléphone, TV, ordinateur), vous pouvez couper l’application web que le serveur affiche dans un navigateur. Ajoutez cette ligne à .env et redémarrez :
TENTACLE_WEB_UI=off- The browser pages then answer “not found” (404).Les pages du navigateur répondent alors « introuvable » (404).
- Everything the apps need keeps working: the API (
/api), live updates, the LG TV app (/tv) and/.well-known. The setup wizard stays available until the setup is finished.Tout ce dont les applications ont besoin continue de marcher : l’API (/api), les mises à jour en direct, l’application des TV LG (/tv) et/.well-known. L’assistant d’installation reste disponible tant que l’installation n’est pas finie. - You then administer the server from the desktop app (macOS, Windows, Linux).Vous administrez alors le serveur depuis l’application de bureau (macOS, Windows, Linux).
- To turn it back on:
TENTACLE_WEB_UI=onand a restart — or typetentacle web onin the container’s console.Pour la rallumer :TENTACLE_WEB_UI=onet un redémarrage — ou tapeztentacle web ondans la console du conteneur.
Questions you might haveLes questions qu’on se pose
“docker: command not found”« docker: command not found »
Docker is not installed on this machine (or the terminal was opened before installing it). See Before you start.
Docker n’est pas installé sur cette machine (ou le terminal a été ouvert avant de l’installer). Voir Avant de commencer.
“permission denied … docker.sock”« permission denied … docker.sock »
Your Linux account may not use Docker yet. Either prefix the commands with sudo, or add yourself to the group: sudo usermod -aG docker $USER, then log out and back in.
Votre compte Linux n’a pas encore le droit d’utiliser Docker. Préfixez les commandes par sudo, ou ajoutez-vous au groupe : sudo usermod -aG docker $USER, puis déconnectez-vous et reconnectez-vous.
“port is already allocated”« port is already allocated »
Another program already uses port 3000 or 8096. Choose another one in .env (for example TENTACLE_PORT=3300), then docker compose up -d.
Un autre programme utilise déjà le port 3000 ou 8096. Choisissez-en un autre dans .env (par exemple TENTACLE_PORT=3300), puis docker compose up -d.
The page does not openLa page ne s’ouvre pas
Wait a few seconds after the first start (the first time, the images are still downloading). Then check docker compose ps, and the address: same machine → localhost; another device → the machine’s address, on the same network. A firewall on the machine may block port 3000.
Attendez quelques secondes après le premier démarrage (la première fois, les images se téléchargent encore). Puis vérifiez docker compose ps, et l’adresse : même machine → localhost ; autre appareil → l’adresse de la machine, sur le même réseau. Un pare-feu sur la machine peut bloquer le port 3000.
Can I install Tentacle without Docker?Puis-je installer Tentacle sans Docker ?
Yes, from the sources (node apps/backend/dist/index.js), but the Docker stacks are the supported way. On a Windows PC, use the Tentacle Server app of the Microsoft Store.
Oui, depuis les sources (node apps/backend/dist/index.js), mais les piles Docker sont la voie prise en charge. Sur un PC Windows, prenez l’app Tentacle Server du Microsoft Store.
Where is my data stored?Où sont mes données ?
In Docker volumes: tentacle-data (the database tentacle.db — accounts, settings — plus extensions and caches) and, for the Tentacle + Jellyfin stack, jellyfin-config and jellyfin-cache. docker compose down keeps them; only docker compose down -v deletes them.
Dans des volumes Docker : tentacle-data (la base tentacle.db — comptes, réglages — plus les extensions et les caches) et, pour la pile Tentacle + Jellyfin, jellyfin-config et jellyfin-cache. docker compose down les garde ; seul docker compose down -v les efface.