Being able to sync settings between devices. This requires a new authentication system.
In my mind, Setting sync should be a floating panel on the settings page, and all sync should be manually triggered. The source of truth for the data when performing operations should still be those stored in localStorage. Sync only pulls / pushes to change localStorage.
Places to storage data:
on server ( node.js ): local file. ( Environment Variables are planned to initialize settings, but the source of truth should be the value in the file )
self-deployed Vercel: Vercel KV.
Local clipboard: to temporary copy / paste all your settings. Useful when you want to backup or migrate between different servers / domains. Close #43
Uer modes:
It should be divided into two modes: single-user and multi-user. Single-user mode is actually a multi-user mode with only one user, but it doesn't display the default account name "admin" in the UI.
Each user should have a username and an encryption key. When storing, use the username as the key and the settings content encrypted by the encryption key as the value. The encryption key should not leave the browser; if the encryption key is forgotten, the user will not be able to retrieve the stored information.
Being able to sync settings between devices. This requires a new authentication system.
In my mind, Setting sync should be a floating panel on the settings page, and all sync should be manually triggered. The source of truth for the data when performing operations should still be those stored in localStorage. Sync only pulls / pushes to change localStorage.
Places to storage data:
Uer modes:
It should be divided into two modes: single-user and multi-user. Single-user mode is actually a multi-user mode with only one user, but it doesn't display the default account name "admin" in the UI.
Each user should have a username and an encryption key. When storing, use the username as the key and the settings content encrypted by the encryption key as the value. The encryption key should not leave the browser; if the encryption key is forgotten, the user will not be able to retrieve the stored information.