Change or reset the admin password
By the end of this page you will know where the admin password comes from, and how to change or reset it.
ADMIN_PASSWORDempty or absent (default): a random password is generated on first start, stored hashed indata/admin.jsonand printed once in thewebcontainer log (docker compose logs web) as a boxed banner containingAdmin password: XXXX.ADMIN_PASSWORDset: the environment variable always wins overdata/admin.json.
To change it:
- from the UI (Settings page, “Change admin password”) or via
POST /api/password {current, new}(minimum 8 characters). This answers 409 ifADMIN_PASSWORDis set in the environment. Other sessions are invalidated and the caller gets a fresh cookie; - to reset a lost password: delete
data/admin.jsonand restart (docker compose restart web); a new password is generated and printed in the log. Or setADMIN_PASSWORDin.envand recreate the containers withdocker compose up -d(a plainrestartdoes not re-readenv_file).
Changing the password invalidates existing sessions (the session cookie embeds a fingerprint of the admin password): you must log in again with the new password.
After 5 failed logins within 5 minutes from the same IP, POST /api/login answers 429. Each failure
is delayed by 0.5 s. The counter lives in the memory of the web process: a restart resets it.