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.

5 minutes5 minutesDocker Compose · PodmanDocker Compose · Podman
On a Windows PC?Sur un PC Windows ?The Tentacle Server app of the Microsoft Store needs no Docker: Tentacle Server for Windows.L’app Tentacle Server du Microsoft Store se passe de Docker : Tentacle Server pour Windows.

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.

Terminal
mkdir tentacle && cd tentacle
curl -fsSLo compose.yaml https://raw.githubusercontent.com/Knaox/Tentacle-TV/main/stacks/tentacle-full/compose.yaml
docker compose up -d
  • mkdir 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 :

Terminal
docker compose ps

You 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.

ViewVoirViewVoir

With PortainerAvec Portainer

  1. Stacks › Add stack. Name: tentacle.Stacks › Add stack. Nom : tentacle.
  2. Web editor: paste the content of the tentacle-full stack (from GitHub: “View” above, then the copy button of the file).Web editor : collez le contenu de tentacle-full (sur GitHub : « Voir » plus haut, puis le bouton de copie du fichier).
  3. Optional: in Environment variables, add MEDIA_PATH with the folder of your videos (see “Settings” below).Facultatif : dans Environment variables, ajoutez MEDIA_PATH avec le dossier de vos vidéos (voir « Réglages » plus bas).
  4. Deploy the stack.Deploy the stack.
Or straight from GitHubOu directement depuis GitHubInstead of Web editor, choose Repository: URL 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

  1. Install Container Manager from the Package Center.Installez Container Manager depuis le Centre de paquets.
  2. 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 dossier docker/tentacle, et votre dossier des médias si vous n’en avez pas (par ex. /volume1/media).
  3. Container Manager › Project › Create: name tentacle, path docker/tentacle, source “Create docker-compose.yml”, and paste the stack.Container Manager › Projet › Créer : nom tentacle, chemin docker/tentacle, source « Créer docker-compose.yml », et collez la pile.
  4. In the pasted text, replace ${MEDIA_PATH:-./media} (twice) by /volume1/media, and ${PUID:-1000} / ${PGID:-1000} by the ids of your account (often 1026 and 100).Dans le texte collé, remplacez ${MEDIA_PATH:-./media} (deux fois) par /volume1/media, et ${PUID:-1000} / ${PGID:-1000} par les identifiants de votre compte (souvent 1026 et 100).
  5. Next › Done: the project builds and starts.Suivant › Terminé : le projet se construit et démarre.
Port 3000 already taken?Port 3000 déjà pris ?Some NAS use port 3000 or 8096 for their own apps. Change the left part of the port line, e.g. "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.

.env
MEDIA_PATH=/srv/media
TZ=Europe/Paris
PUID=1000
PGID=1000
SettingRéglageDefaultDéfautWhat it doesÀ quoi il sert
MEDIA_PATH./mediaThe 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_PORT3000Tentacle’s port on this machine.Le port de Tentacle sur cette machine.
JELLYFIN_PORT8096Jellyfin’s port on this machine (Tentacle + Jellyfin stack).Le port de Jellyfin sur cette machine (pile Tentacle + Jellyfin).
JELLYFIN_DISCOVERY_PORT7359Jellyfin’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 / PGID1000The 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.
TZEurope/ParisThe time zone.Le fuseau horaire.
TENTACLE_VERSIONlatestPin 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.
No password, no databaseNi mot de passe, ni baseNo database to set up either: Tentacle keeps its data in one file, 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: ipconfig in a terminal (“IPv4 Address”).Mac : Réglages système › Wi-Fi › Détails. Windows : ipconfig dans 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 utilisezTo updatePour mettre à jour
A terminalUn terminaldocker compose pull && docker compose up -d (from the stack’s folder)(depuis le dossier de la pile)
PortainerStacks › 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é).
SynologyContainer Manager › Project › tentacle › Action › Build (it downloads the new images).Container Manager › Projet › tentacle › Action › Construire (il télécharge les nouvelles images).
UnraidDocker 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 :

.env
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=on and a restart — or type tentacle web on in the container’s console.Pour la rallumer : TENTACLE_WEB_UI=on et un redémarrage — ou tapez tentacle web on dans 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.

Still stuck?Toujours bloqué ?Look at Troubleshooting and the questions & answers, or write to us from the support page — or on Discord.Regardez le Dépannage et les questions-réponses, ou écrivez-nous depuis la page support — ou sur Discord.