Unlock Your Locked Ghost Account
I setup Ghost a little over a week ago, thinking my first post would be about the setup. Tonight, tired but not wanting to go to bed, I decided to work on the “How to setup Ghost” blog post. Foolishly, I had forgotten my password, having only really logged in once. After five attempts at logging in I am locked out. And of course I did not setup the email functionality, so there is no hope in resetting that way.
So here I am, locked out of my new blog, wanting to blog. If you have found yourself in a similar situation then you can follow theses steps to unlock your account so you can enter the correct password after drinking some coffee. (If you don’t remember your password, coffee or not, this likely won’t help you much.)
First we will need to install sqlite3, in case you don’t already have it (I didn’t):
You will then want to navigate to your installation directory, typical locations include /var/www/ghost/, from there you want ./content/data, so let’s go there:
Here you’ll find ghost.db
and README.md
. We are going to be changing some
values in the database with sqlite3. (Surprise, surprise.) Let’s fire up the
database, making sure to login as root (with sudo), else we’ll be unable to
change anything, as it’ll be readonly:
We then can check our users and see that we really are locked out:
This will display a single long line, likely with a value of "locked"
somewhere in it. That is what we’ve come here to change. We want to set it to
the value "active"
, to do so run:
We can check that we were successful with another:
After confirmation, exit sqlite3 with:
Now, navigate back your sign in page, take another sip of that coffee, and
enter your password correctly this time. Now that you’ve hopefully logged in,
it’s time to actually setup that mailing functionality! (Or if you’re anything
like me, not worry about it, since you now know how to unlock yourself in the
event of further stupidity lack of coffee…)
EDIT (2014-05-23): I have since added email functionality using MailGun. I’d write up how it’s done, but it’s already thouroughly documented in the Ghost documentation, you can find it here.