Skip to content

First Login

New deployments bootstrap a default admin identity:

email: admin@roster.local
username: admin
password: the value supplied through ROSTER_BOOTSTRAP_ADMIN_PASSWORD
role: admin

Production requires a strong, deployment-specific bootstrap password. Local development outside NODE_ENV=production continues to use admin when the variable is omitted. After sign-in, the password-change behavior is controlled by ROSTER_BOOTSTRAP_ADMIN_PASSWORD_CHANGE_MODE.

When password_change_required=true, Roster applies the configured mode:

ModeBehavior
remindDefault. Shows Skip for now. Dismissing the prompt applies only to the current browser session, and a later session shows it again.
requiredDoes not offer Skip for now. Protected browser functions and OAuth consent remain unavailable until the password is changed.
offDoes not show or enforce the password-change prompt. The stored password_change_required value is left unchanged.

When password_change_required=false, no mode shows the prompt. Only a successful password change clears the stored requirement.

New passwords must:

  • Be at least 12 characters
  • Include a lowercase letter
  • Include an uppercase letter
  • Include a number
  • Include a symbol
  • Not start or end with whitespace
  • Not equal the default password admin
  • Differ from the current password

Better Auth also enforces a minimum password length of 12 characters on the server.

Change the bootstrap admin password immediately after deployment and create named admin team members for day-to-day administration. Treat the bootstrap account as a recovery account, not as a shared operational identity.

After the bootstrap administrator has been created and the first login is confirmed, remove ROSTER_BOOTSTRAP_ADMIN_PASSWORD from the deployment configuration. Roster ignores the variable while the bootstrap administrator exists, but a fresh or reset database would reuse a retained bootstrap password.