diff --git a/Troubleshooting.md b/Troubleshooting.md index 294b9f0..cc1b2d6 100644 --- a/Troubleshooting.md +++ b/Troubleshooting.md @@ -8,6 +8,29 @@ If there's a UI problem, it usually means that the Trilium frontend got into inc If this still doesn't help or you suspect it's actually backend issue, you can restart the whole application - in case of desktop (Electron) build, you just close the window and re-open it again. +## Forgotten username/password + +In case you forgot your password, this means that: + +* your protected notes are forever lost - they cannot be decrypted without the password +* normal (unprotected) notes are recoverable. Read below to see how. + +To be able to change username/password and thus recover your unprotected notes, you need to get access to the [[document]] file in a [[data directory]]. You then need to open the `document.db` file with SQLite client (command line or e.g. [DB Browser](https://sqlitebrowser.org/)) and execute following queries: + +```sql +UPDATE options SET value = 'your_username' WHERE name = 'username'; -- feel free to change 'your_username' to your desired username +UPDATE options SET value = '77/twC5O00cuQgNC63VK32qOKKYwj21ev3jZDXoytVU=' WHERE name = 'passwordVerificationSalt'; +UPDATE options SET value = '710BMasZCAgibzIc07X4P9Q4TeBd4ONnqJOho+pWcBM=' WHERE name = 'passwordDerivedKeySalt'; +UPDATE options SET value = 'Eb8af1/T57b89lCRuS97tPEl4CwxsAWAU7YNJ77oY+s=' WHERE name = 'passwordVerificationHash'; +UPDATE options SET value = 'QpC8XoiYYeqHPtHKRtbNxfTHsk+pEBqVBODYp0FkPBa22tlBBKBMigdLu5GNX8Uu' WHERE name = 'encryptedDataKey'; +``` + +This will set the password to "password". You can use that to login to the application again. + +If you already had protected notes (which are not unrecoverable), I recommend deleting them or alternatively export the unprotected notes, delete the document.db and start anew. + +If you decide to continue using the existing document file, don't forget to change your password (Options -> Change password). + ## Sync and consistency checks Trilium periodically checks logical consistency of the database (e.g. that every note should have a parent). If some inconsistency is detected, user is notified on the UI about the inconsistency.