Owner access and sessions
One owner account, protected cookies, CSRF checks, and a deliberate recovery path.
Bootstrap and sign in
Portal has one owner account. During first setup, establish the owner email and password; the production installer asks for the initial password. Later sign-in uses the stored owner email and a password hash in SQLite. Existing installer-password configuration supports first bootstrap only.
Session protections
Sessions persist for seven days using a hashed server-side identifier. In host mode the cookie is Secure, HttpOnly, and SameSite=Lax; every state-changing browser request also requires the session’s CSRF token. Failed logins are rate limited per source address.
Change or reset the password
In Settings, provide the current password and a new password of at least twelve characters with upper/lowercase letters, a number, and a symbol. Changing it invalidates other sessions and creates a new current session. If it is lost, use sudo dashboard-portal --reset-pwd over SSH.
Not a team identity system
There are no team accounts, API-persona roles, SSO, or tenant isolation. Give Portal access only to the server owner or operate it behind an owner-controlled access layer.