Forgot password on Self-hosted Ghost?

How to reset your Ghost password by modifying the database record for your user. (Yes I didn't setup email)

Forgot password on Self-hosted Ghost?
Photo by Towfiqu barbhuiya / Unsplash

I self-host Ghost (self-ghost haha) on my server. I like learning the nitty gritty of the software I use, and having the freedom to modify it as required.


Finding the Database container

$ docker ps | grep ghost
ab1e09b2054d   mysql:8.0                                          ...
a32af31513c6   ghost:5-alpine                                     ...

We're interested in the database container, that's mysql. Let's copy the container's ID for the time being (ab1e09b2054d).

Connecting to the Container

$ docker exec -it ab1e09b2054d/bin/sh

Connects to the container and runs the shell.

mysql CLI

To modify the database, we'll need to use the mysql CLI.

$ mysql -u <username> -p<password> <database_name>

For me, the command was: $ mysql -u root -p<password> ghost

Modifying the Data

We're in the database, we'll need the email address registered with ghost.

Finding your email address
Execute SELECT * from users;, and copy your email address from the output.

With this in hand, we can modify our password.

Head to and paste in your new password. Hit encrypt, and copy the output on the right.

With the password hash copied, run the following:

UPDATE users SET password='<password_hash_here>' WHERE email='<email_address>';

And that's it! We've regained access.

Thanks to's post on the same.