Reset du mot de passe d’un utilisateur Jellyfin via CLI (LXC)
🎯 Objectif
Réinitialiser le mot de passe d’un utilisateur Jellyfin (USER$ dans cet exemple) sans recréer le compte, directement depuis le conteneur LXC, quand l’interface web affiche Connection Failure ou que le mot de passe est perdu.
Environnement :
- Jellyfin installé dans un LXC Ubuntu
- Base SQLite :
/var/lib/jellyfin/data/jellyfin.db - Accès root au LXC
1. Se connecter au conteneur Jellyfin
Depuis l’hôte Proxmox (PVE), en root :
pct enter <CTID_JELLYFIN>
(Le prompt devient alors root@jellyfin:/#.)
Vérifier que Jellyfin tourne et écoute sur le port 8096 :
systemctl status jellyfin.service
ss -lntp | grep -E '8096|8920' || echo "Rien n'écoute sur 8096/8920"
2. Arrêter proprement le service Jellyfin
systemctl stop jellyfin.service
3. Sauvegarder la base de données Jellyfin
Se placer dans le répertoire des données :
cd /var/lib/jellyfin/data
ls jellyfin.db
Créer une sauvegarde horodatée :
cp jellyfin.db jellyfin.db.bak_$(date +%F_%H-%M-%S)
En cas de problème, il suffira de restaurer :
systemctl stop jellyfin.service cp jellyfin.db.bak_YYYY-MM-DD_HH-MM-SS jellyfin.db systemctl start jellyfin.service
4. Vérifier la liste des utilisateurs
Installer sqlite3 si nécessaire :
apt update
apt install -y sqlite3
Lister les utilisateurs Jellyfin :
sqlite3 jellyfin.db "SELECT Id, Username FROM Users;"
Repérer l’utilisateur cible, par exemple : USER$.
5. Réinitialiser le mot de passe de l’utilisateur
Mettre le champ Password à NULL pour l’utilisateur :
sqlite3 jellyfin.db "UPDATE Users SET Password=NULL WHERE Username='USER$';"
Vérifier :
sqlite3 jellyfin.db "SELECT Username, Password FROM Users WHERE Username='USER$';"
Résultat attendu :
USER$|
(Colonne Password vide)
6. Redémarrer Jellyfin
systemctl start jellyfin.service
systemctl status jellyfin.service
Le service doit repasser en active (running).
7. Connexion et changement de mot de passe
- Ouvrir l’interface Jellyfin :
http://<IP_LXC_JELLYFIN>:8096 - S’authentifier avec :
- Utilisateur : USER$
- Mot de passe : laisser vide
- Une fois connecté, aller dans :
- Tableau de bord → Utilisateurs → USER$ → Mot de passe
- Définir un nouveau mot de passe sécurisé.
8. Récapitulatif des commandes utilisées
# Dans le LXC Jellyfin
systemctl stop jellyfin.service
cd /var/lib/jellyfin/data
cp jellyfin.db jellyfin.db.bak_$(date +%F_%H-%M-%S)
sqlite3 jellyfin.db "SELECT Id, Username FROM Users;"
sqlite3 jellyfin.db "UPDATE Users SET Password=NULL WHERE Username='USER$';"
sqlite3 jellyfin.db "SELECT Username, Password FROM Users WHERE Username='USER$';"
systemctl start jellyfin.service
systemctl status jellyfin.service
Notes
- Cette méthode ne supprime aucun utilisateur ni profils.
- Toujours conserver au moins une sauvegarde de
jellyfin.dbavant modification. - La procédure est réutilisable pour n’importe quel utilisateur en changeant simplement :
WHERE Username='nom_utilisateur';