Comme tout le monde, dès fois je suis un boulet (seulement dès fois ? oui je m'auto-troll dans une parenthèse qui devient très longue et même plus longue que la phrase (et oui je parle pour ne rien dire, et oui je mets des parenthèses dans mes parenthèses, et alors ?)). En gros j'ai verrouillé mon Ghost en ne lisant pas l'avertissement de nombre d'essai et en tapant 3 fois un mauvais mot de passe avant de me rappeler que j'avais mon mot de passe d'enregistré dans mon gestionnaire de mot de passe.

Dans ces cas là, on fait quoi ?

À la base Ghost propose de faire un reset et d'envoyer un mail pour gérer ça. Évidemment, ne voyant pas d'intérêt à ajouter un serveur mail sur mon serveur, je ne pouvais pas faire comme ça.

Alors comment j'ai fait ? Parce que oui, si je fais cet article c'est que j'ai une solution :p

En gros, le Google a été mon ami (et pour une fois, le canard[1] ne m'a pas aidé, méchant canard !) et j'ai trouvé d'autre gens comme Brian Koopman[2] qui ont bloqués leurs Ghost.

La solution est simple, "verrouiller" son compte Ghost c'est juste faire passer un champ de la base de données de "active" à "locked" (ça veut dire "verrouillé" pour les non anglophone). Pour corriger ça on fait juste l'inverse.

En pratique

Si vous avez suivi le tuto que j'ai fait pour installer Ghost dans Docker, vous avez une base de données SQLite. Si vous avez changez de base de données ça fonctionne pareil, faudra juste adapter certains détails.

Je suppose que vous avec l'installation classique Docker+Ghost+SQLite (en gros ce que j'ai montré).

On commence par se connecter au serveur où tourne votre blog. Ensuite on va dans le dossier data de Ghost (celui avec votre configuration, votre thème, etc.) :

$ cd /chemin/vers/ghost/
$ cd data/

Ensuite on ouvre la base de données :

$ sqlite3 ghost.db

Si vous n'avez pas le programme sqlite3, tentez "sqlite" ou installez-le avec votre gestionnaire de paquet (apt-get, pacman, yum, etc.).

Ensuite vérifiez que votre utilisateur est bien "locked" :

sqlite> select * from users;

Normalement une ligne devrait apparaître avec un "locked". Si c'est bien le cas, on corrige le problème avec la commande suivante :

sqlite> update users set status = "active";

On vérifie que c'est bien changé :

sqlite> select * from users;

Et si tout est bon, on quitte :

sqlite> .exit

Après ça, sans rien faire de plus j'ai pu me connecter, en utilisant le bon mot de passe cette fois ci.


  1. https://duckduckgo.com/ ↩︎

  2. http://blog.briankoopman.com/unlock-ghost-account/ ↩︎