Skip to content

Accounts & password reset

Each person has one account that can belong to several workspaces. This page covers signing in and resetting a forgotten password — plus the email setup that self-hosters need to make reset links actually arrive.

Open the app and sign in with your email and password. If GitHub OAuth is configured (GITHUB_CLIENT_ID / GITHUB_CLIENT_SECRET), a Sign in with GitHub button also appears.

Sensitive auth endpoints (sign-in, sign-up, password reset) are rate-limited per client IP to blunt brute-force attempts — see AUTH_RATE_LIMIT in Self-hosting.

  1. On the login screen, click Forgot password?.
  2. Enter your email. PulseDeck always shows the same confirmation — “If that email exists, a reset link is on its way.” — so the page never reveals whether an account exists.
  3. Open the link in the email and set a new password (min 8 characters).

The reset link expires after 1 hour. An expired or unknown token shows “This password reset link is invalid or expired” — request a fresh one.

Out of the box PulseDeck sends no email: invite links surface in the app and the forgot-password flow warns that delivery is off. Point it at any SMTP server to enable password-reset and invite emails:

Terminal window
EMAIL_PROVIDER=smtp
EMAIL_FROM="PulseDeck <no-reply@yourdomain.com>"
SMTP_HOST=smtp.yourprovider.com
SMTP_PORT=587 # 587 STARTTLS (default), or 465 with SMTP_SECURE=true
SMTP_USER=...
SMTP_PASS=...

Email counts as configured once EMAIL_PROVIDER=smtp and SMTP_HOST are both set. Any standard SMTP provider works — Mailgun, Postmark, SES SMTP, Resend SMTP, or your own server. Full option list in Self-hosting.

Until then, admins see an email-not-configured banner on the Settings page naming what’s affected (reset delivery, invite emails). The banner clears once SMTP is set.