TroubleshootingDépannage
Every message says a cause. Here are the usual problems, what they mean, and what to do — logs first.Chaque message dit une cause. Voici les problèmes habituels, ce qu’ils veulent dire, et que faire — les journaux d’abord.
First, read the logsD’abord, lire les journaux
Tentacle writes what it does — and why it refuses something — in its log. Passwords and keys are hidden there.Tentacle écrit ce qu’il fait — et pourquoi il refuse quelque chose — dans son journal. Les mots de passe et les clés y sont masqués.
docker compose logs --tail 200 tentacle # from the stack's folder
docker logs --tail 200 <container> # any container, by name or IDdocker compose logs --tail 200 tentacle # depuis le dossier de la pile
docker logs --tail 200 <conteneur> # tout conteneur, par son nom ou son identifiantPortainer: Containers › the Tentacle container › Logs. NAS: the container’s “Log” page. Then Jellyfin’s log, the same way.Portainer : Containers › le conteneur Tentacle › Logs. NAS : la page « Journal » du conteneur. Puis celui de Jellyfin, de la même façon.
I cannot find the setup codeJe ne trouve pas le code d’installation
- It is in the log of the Tentacle container (not Jellyfin’s), in a block framed with ═══.Il est dans le journal du conteneur Tentacle (pas celui de Jellyfin), dans un bloc encadré de ═══.
- The log was cleared or the code was used: ask for a new one with
tentacle setup tokenin the container’s console (docker exec <container> tentacle setup token).Le journal a été vidé ou le code a servi : demandez-en un neuf avectentacle setup tokendans la console du conteneur (docker exec <conteneur> tentacle setup token). - It is also in
data/setup-token.txtof the data volume.Il est aussi dansdata/setup-token.txtdu volume de données. - No block at all? The setup is already finished: see “Open the wizard again” below.Aucun bloc ? L’installation est déjà finie : voir « Rouvrir l’assistant » plus bas.
All the ways to read it: the setup code.Toutes les façons de le lire : le code d’installation.
I chose the wrong JellyfinJ’ai choisi le mauvais Jellyfin
During the setup: go Back to the Jellyfin screen and pick the other one. What had been prepared for the first is forgotten (an account already created on it stays there).Pendant l’installation : revenez (Retour) à l’écran Jellyfin et choisissez l’autre. Ce qui avait été préparé pour le premier est oublié (un compte déjà créé dessus y reste).
After the setup: open the wizard again (below) — it also forgets the choice — or change Jellyfin’s address in Administration › Services › Jellyfin.Après l’installation : rouvrez l’assistant (plus bas) — il oublie aussi le choix — ou changez l’adresse de Jellyfin dans Administration › Services › Jellyfin.
My username or password is refusedMon nom d’utilisateur ou mon mot de passe est refusé
- Tentacle uses Jellyfin’s accounts: test the same name and password on Jellyfin’s own page (
http://<machine>:8096).Tentacle utilise les comptes de Jellyfin : essayez le même nom et le même mot de passe sur la page de Jellyfin (http://<machine>:8096). - Names are case-sensitive.Les noms sont sensibles aux majuscules.
- “This account is not a Jellyfin administrator”: use an administrator account (Jellyfin › Dashboard › Users).« Ce compte n’est pas administrateur de Jellyfin » : utilisez un compte administrateur (Jellyfin › Tableau de bord › Utilisateurs).
- Forgotten administrator password: Jellyfin’s “Forgot password” link, from a device of your home network, then follow its instructions.Mot de passe administrateur oublié : le lien « Mot de passe oublié » de Jellyfin, depuis un appareil du réseau de la maison, puis suivez ses instructions.
The ports stay closedLes ports restent fermés
- “Access from outside” is on, in Administration › Remote access.« Accès depuis l’extérieur » est allumé, dans Administration › Accès à distance.
- The router rule points to the server’s current address — reserve it (DHCP reservation).La règle de la box vise l’adresse actuelle du serveur — réservez-la (réservation DHCP).
- External and internal ports match the table of the wizard (3000 → 3000).Ports externe et interne conformes au tableau de l’assistant (3000 → 3000).
- No firewall on the server blocks the port (
ufw allow 3000/tcpon Ubuntu).Aucun pare-feu du serveur ne bloque le port (ufw allow 3000/tcpsous Ubuntu). - Not a shared address: CGNAT.Pas une adresse partagée : CGNAT.
- Test from a phone on 4G, Wi-Fi off — not from home.Testez depuis un téléphone en 4G, Wi-Fi coupé — pas depuis la maison.
Docker Desktop (Mac, Windows) and colima: everything looks “local” and the real visitors’ addresses are lost. For access from the Internet, prefer Linux or a NAS.Docker Desktop (Mac, Windows) et colima : tout paraît « local » et la vraie adresse des visiteurs est perdue. Pour l’accès depuis Internet, préférez Linux ou un NAS.
Videos are converted instead of played directlyLes vidéos sont converties au lieu d’être lues directement
- At home, apps play directly from Jellyfin through “the Jellyfin address for the apps” (set in the summary). If it says
localhostor a wrong address, fix it in Administration › Services › Jellyfin.À la maison, les applications lisent directement chez Jellyfin par « l’adresse de Jellyfin pour les applications » (réglée au récapitulatif). Si elle ditlocalhostou une mauvaise adresse, corrigez-la dans Administration › Services › Jellyfin. - Administration › Overview recommends “direct play” when it is off.Administration › Vue d’ensemble recommande la « lecture directe » quand elle est coupée.
- Away from home, videos go through Tentacle unless direct play from outside is on.Hors de la maison, les vidéos passent par Tentacle sauf si la lecture directe depuis l’extérieur est allumée.
- Some files must be converted for some devices (a codec the TV does not read). The player says so.Certains fichiers doivent être convertis pour certains appareils (un codec que la TV ne lit pas). Le lecteur le dit.
Update the serverMettre à jour le serveur
| You useVous utilisez | Do thisFaites ceci |
|---|---|
| A terminalUn terminal | docker compose pull && docker compose up -d |
| Portainer | Stacks › your stack › Pull and redeploy.Stacks › votre pile › Pull and redeploy. |
| Synology | Container Manager › Project › Action › Build.Container Manager › Projet › Action › Construire. |
| Unraid | Docker Compose Manager › Update stack. |
Settings, accounts and libraries stay. If you pinned TENTACLE_VERSION in .env, change it first.Réglages, comptes et bibliothèques restent. Si vous avez figé TENTACLE_VERSION dans .env, changez-la d’abord.
“Server to update” in an app means the server is older than the app: update it the same way.« Serveur à mettre à jour » dans une application veut dire que le serveur est plus ancien que l’application : mettez-le à jour de la même façon.
After the update to 1.25: the database migrationAprès la mise à jour vers la 1.25 : la migration de la base
Since 1.25, Tentacle keeps its data in one SQLite file. An installation that used MariaDB is copied into it by itself, at the first start. MariaDB is only read, never modified. Everything: Migrating to SQLite.Depuis la 1.25, Tentacle garde ses données dans un fichier SQLite. Une installation qui utilisait MariaDB y est recopiée d’elle-même, au premier démarrage. MariaDB n’est que lue, jamais modifiée. Tout le détail : Migration vers SQLite.
| MessageMessage | What to doQue faire |
|---|---|
| “Database migration in progress”« Migration de la base de données en cours » | Wait: a few seconds, about ten on a slow NAS. The screen shows the progress and goes away by itself.Patientez : quelques secondes, une dizaine sur un NAS lent. L’écran montre l’avancement et s’en va de lui-même. |
| “The migration did not complete”« La migration n’a pas abouti » | Your data is intact. The screen says why; the log’s [db-migration] lines say exactly what. Fix it, then wait for the automatic retry or type tentacle db migrate in the container’s console. Details.Vos données sont intactes. L’écran dit pourquoi ; les lignes [db-migration] du journal disent quoi exactement. Corrigez, puis attendez le nouvel essai automatique ou tapez tentacle db migrate dans la console du conteneur. Détails. |
| “This installation used a MariaDB database that is no longer configured”« Cette installation utilisait une base MariaDB qui n’est plus configurée » | MariaDB was removed before the migration: put its service and variables back, restart, then remove them once the migration is done. Details.MariaDB a été retirée avant la migration : remettez son service et ses variables, redémarrez, puis retirez-les une fois la migration faite. Détails. |
| “A MariaDB database is configured but was never migrated”« Une base MariaDB est configurée mais n’a jamais été migrée » | Nothing is done automatically: if the old data is the right one, ask for a new migration from the Database card. Details.Rien n’est fait d’office : si les anciennes données sont les bonnes, demandez une nouvelle migration depuis la carte Base de données. Détails. |
| “The database is on a network share”« La base est sur un partage réseau » | Move Tentacle’s data folder to a local disk: SQLite can get corrupted on NFS or SMB. Details.Déplacez le dossier de données de Tentacle sur un disque local : SQLite peut s’abîmer sur NFS ou SMB. Détails. |
| “The old MariaDB database changed since the migration”« L’ancienne base MariaDB a changé depuis la migration » | An older image wrote in MariaDB after the migration. The Database card offers Migrate again. Details.Une image plus ancienne a écrit dans MariaDB après la migration. La carte Base de données propose Migrer à nouveau. Détails. |
Open the wizard again: tentacle setup resetRouvrir l’assistant : tentacle setup reset
Once finished, the wizard closes for good — nobody can reopen it from a browser. Only the machine can: type tentacle setup reset in the container’s console (Portainer: Console › Connect), restart the container, and read the new code in its log.Une fois finie, l’assistant se ferme pour de bon — personne ne peut le rouvrir depuis un navigateur. Seule la machine le peut : tapez tentacle setup reset dans la console du conteneur (Portainer : Console › Connect), redémarrez le conteneur, et lisez le nouveau code dans son journal.
docker exec <container> tentacle setup reset
docker restart <container>
docker logs <container> # the new setup codedocker exec <conteneur> tentacle setup reset
docker restart <conteneur>
docker logs <conteneur> # le nouveau code d’installationYour settings, your accounts and the libraries stay. The choice of Jellyfin is forgotten: you choose it again, and sign in again.Vos réglages, vos comptes et les bibliothèques restent. Le choix du Jellyfin est oublié : vous le refaites, et vous vous reconnectez.
Messages of the wizardLes messages de l’assistant
| MessageMessage | What to doQue faire |
|---|---|
| “In Docker, localhost means Tentacle itself”« Dans Docker, localhost désigne Tentacle lui-même » | Give Jellyfin’s real address: http://host.docker.internal:8096 or http://192.168.x.y:8096.Donnez la vraie adresse de Jellyfin : http://host.docker.internal:8096 ou http://192.168.x.y:8096. |
| “This version of Jellyfin is not supported”« Cette version de Jellyfin n’est pas prise en charge » | Update Jellyfin (10.10 at least).Mettez Jellyfin à jour (10.10 au moins). |
| “This folder does not exist for Jellyfin”« Ce dossier n’existe pas pour Jellyfin » | Paths are Jellyfin’s: in a container, /media. Details.Les chemins sont ceux de Jellyfin : dans un conteneur, /media. Détails. |
| “This step is not part of the setup of this Jellyfin”« Cette étape ne fait pas partie de l’installation de ce Jellyfin » | The page is out of step with the server: go back to the Jellyfin screen (reload the page if needed).La page est en décalage avec le serveur : revenez à l’écran Jellyfin (rechargez la page au besoin). |
| “Jellyfin is still starting”« Jellyfin démarre encore » | Wait a few seconds; the wizard retries.Patientez quelques secondes ; l’assistant réessaie. |
| “This Tentacle server is older than this app”« Ce serveur Tentacle est plus ancien que cette application » | Open the wizard in a browser (the link of its log), or update the server.Ouvrez l’assistant dans un navigateur (le lien de ses journaux), ou mettez le serveur à jour. |
| “An unexpected error occurred”« Une erreur inattendue est survenue » | Retry; if it comes back, read the log and write to us with its last lines.Réessayez ; si elle revient, lisez le journal et écrivez-nous avec ses dernières lignes. |