Onboarding System
The onboarding system walks new users through the panel's features on their first login.
How It Works
- New user logs in for the first time
- Panel checks
onboardingCompletedandonboardingSkippedflags - If neither is true, the onboarding flow is shown
- User completes or skips the steps
- Flags are updated in the database
Configuration
Onboarding is controlled by:
| Setting | Description |
|---|---|
onboardingEnabled |
Master toggle (default: true) |
onboardingSteps |
JSON array of step definitions |
Admins can customize which steps appear in the onboarding flow through the onboardingSteps setting.
User State
| Field | Description |
|---|---|
onboardingCompleted |
User finished all steps |
onboardingSkipped |
User chose to skip |
API Endpoints
Complete Onboarding
POST /api/v2/account/onboarding/complete
Skip Onboarding
POST /api/v2/account/onboarding/skip
Reset Onboarding (Admin)
Admins can reset a user's onboarding state:
POST /api/v2/admin/users/:id/onboarding/reset
This sets both onboardingCompleted and onboardingSkipped to false, so the user sees onboarding again on their next login.
Views
The onboarding system uses the following views:
views/user/2fa-setup.ejs(2FA setup step)- Other onboarding steps rendered dynamically based on configuration
Module
The onboarding module (src/modules/user/onboarding.ts) handles the page routes for the onboarding flow.