User Management
listmonk supports multiple authentication methods and user management features. Users are managed through the Settings → Users dashboard in the admin interface.Starting from recent versions, listmonk has moved away from config file-based credentials to database-managed users with role-based access control.
Initial Setup
On first launch, listmonk will prompt you to create a Super Admin user:Environment Variables for Setup
You can pre-configure the Super Admin credentials using environment variables:User Types
listmonk supports two types of users:User
Regular users who log in through the web interface. Support password and OIDC authentication.
API
API-only users for programmatic access. Use username/password for HTTP Basic Authentication.
Role-Based Access Control
Users are assigned roles that define their permissions:Defines what a user can do in the admin interface (view, create, edit campaigns, manage subscribers, etc.).
Defines which mailing lists a user can access. Can be restricted to specific lists.
The default Super Admin role (ID: 1) has all permissions and cannot be deleted.
Password Authentication
Standard username/password authentication for web interface users.Password Requirements
- Minimum length: 8 characters
- No maximum length limit
- No special character requirements (but recommended)
Password Reset
Users can reset their password through the login page:Password reset emails are sent using the configured SMTP settings.
OIDC Authentication
listmonk supports OpenID Connect (OIDC) for single sign-on with external identity providers.Enable OIDC authentication.
OIDC provider’s discovery URL.Examples:
- Google:
https://accounts.google.com - Azure AD:
https://login.microsoftonline.com/{tenant-id}/v2.0 - Keycloak:
https://keycloak.example.com/realms/{realm}
Optional display name for the OIDC provider shown on the login page.If empty, listmonk will attempt to derive it from the provider URL.
OAuth 2.0 client ID from your OIDC provider.
OAuth 2.0 client secret from your OIDC provider.
Automatically create users on first OIDC login.
Default user role ID assigned to auto-created users.Required if auto_create_users is enabled.
Default list role ID assigned to auto-created users.Optional. If not set, users get access to all lists.
OIDC Configuration Example
Supported OIDC Providers
listmonk has been tested with:- Microsoft Azure AD / Entra ID
- Keycloak
- Auth0
- Authentik
- GitHub (via OIDC)
OIDC Setup Guide
Google OIDC Setup
Google OIDC Setup
Create OAuth 2.0 Client
- Go to Google Cloud Console
- Navigate to APIs & Services → Credentials
- Create OAuth 2.0 Client ID (Web application)
Azure AD OIDC Setup
Azure AD OIDC Setup
Register Application
- Go to Azure Portal
- Navigate to Azure Active Directory → App registrations
- New registration
Two-Factor Authentication (TOTP)
listmonk supports TOTP (Time-based One-Time Password) for additional security.2FA is configured per user and is optional. Each user can enable it for their own account.
Enabling 2FA
Scan QR Code
Use an authenticator app (Google Authenticator, Authy, 1Password, etc.) to scan the QR code
2FA Login Flow
- Enter username and password on the login page
- If 2FA is enabled, you’ll be redirected to the 2FA verification page
- Enter the current 6-digit code from your authenticator app
- Upon successful verification, you’ll be logged in
API Authentication
API users authenticate using HTTP Basic Authentication.Creating an API User
Set Credentials
- Username: API identifier
- Password: API secret (minimum 8 characters)
- Role: Assign appropriate permissions
Using API Credentials
Session Management
listmonk uses secure session cookies for web authentication.Session Behavior
- Sessions are stored in the PostgreSQL database
- Session cookies are HTTP-only and use SameSite=Lax
- Sessions persist across browser restarts
- Logout clears the session from both browser and database
Session Security
- All session cookies are marked as secure when accessed over HTTPS
- CSRF protection using nonce tokens for OIDC flows
- Session timeout is managed by the underlying session library
Legacy Credentials
Legacy config-based credentials:- Are deprecated and show a warning banner
- Should be migrated to database users
- Will be removed in future versions
- Create a new user through Settings → Users
- Assign the Super Admin role
- Test the new credentials
- Remove
admin_usernameandadmin_passwordfrom config.toml - Restart listmonk
Security Best Practices
Use Strong Passwords
Require passwords of at least 12 characters with mixed case, numbers, and symbols.
Enable 2FA
Require all admin users to enable two-factor authentication.
Use OIDC
Centralize authentication with your organization’s identity provider.
Limit Permissions
Create custom roles with minimal required permissions for each user.
Separate API Users
Use dedicated API users for programmatic access, not personal accounts.
Regular Audits
Periodically review active users and remove unused accounts.