+++ title = "MissKey: Resetting Admin Password" publishDate = 2023-08-11T00:00:00+02:00 lastmod = 2025-04-21T15:16:56+02:00 tags = ["misskey", "admin", "postgres"] categories = ["tech"] draft = false meta = true type = "list" [menu] [menu.posts] weight = 3005 identifier = "misskey-resetting-admin-password" +++ So recently I had the need to reset the admin password in [MissKey](https://github.com/misskey-dev/misskey/). Alas, there was no recovery email configured, nor other users on the instance, so I needed to do some digging in the database. <!--more--> So here is the short of it. 1. Log in with your misskey user into postgres (assuming that's what you're running MissKey on). 2. Connect to the database. 3. `select * from "user" where "isAdmin" = true;` 4. Grab the `userId` for the user you're resetting the password for. 5. `select * from user_profile where "userId" = 'your-userId';` to confirm that you're getting the right info. 6. Get the hashed password with `bcrypt`, such as: `python -c 'import bcrypt; print(bcrypt.hashpw("new-password", bcrypt.gensalt(log_rounds=10)))'` 7. `UPDATE user_profile SET password = 'hashed-password' WHERE "userId" = 'your-userId';` Notes: - Step 6 requires that you have python-bcrypt installed, and uses that library to do its thing. - There is a difference between single quotes, double quotes, and lowercase/ capitals. This is a quirk of psql, so make sure you get those right. And... done. <span class="underline">[Join the FSF.](https://my.fsf.org/join)</span>