Skip to content

Onboarding Wizard

Alga includes a first-run onboarding wizard that guides new installations through initial setup. The wizard activates automatically once the initial admin account has been created via the setup wizard.

Accessing the Wizard

On first boot with no users in the database, the frontend redirects to /setup where the operator creates the initial admin account (email, password, and full name). After the setup wizard is completed, the first login with those credentials triggers the onboarding page. Complete the wizard to access the main application.

What the Wizard Covers

1. Change Default Password

The first step requires changing the admin password away from the value set during the setup wizard. Alga enforces a password policy:

  • Minimum 8 characters
  • At least one uppercase letter
  • At least one lowercase letter
  • At least one digit
  • At least one special character

The password used during setup is rejected on subsequent password changes — choose a new, strong password before proceeding.

2. Configure Basic Settings

Set up the core alerting and notification configuration:

  • Alert source — where alerts come from (Grafana, Prometheus, etc.)
  • Notification channels — Mattermost server URL, Slack bot token, or email (SMTP)

3. Create First Webhook Token

Generate a webhook token for sending alerts to Alga:

sh
curl -X POST http://localhost:8080/api/v1/webhook-tokens \
  -H "Authorization: Bearer $SESSION" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Grafana Production"
  }'

Use the returned token in your alerting source configuration:

sh
curl -X POST http://localhost:8080/webhooks/alerts \
  -H "Authorization: Bearer alga_..." \
  -H "Content-Type: application/json" \
  -d '{
    "labels": {
      "alertname": "HighErrorRate",
      "severity": "critical"
    },
    "annotations": {
      "summary": "Error rate exceeded 10% threshold"
    }
  }'

4. Verify Setup

The final step verifies the configuration by:

  • Confirming the webhook token was created
  • Testing connectivity to configured notification channels (if any)
  • Creating the first test alert

Skipping the Wizard

The wizard can be completed in sequence or dismissed. After completion, the onboarding page is no longer accessible and the admin is redirected to the dashboard.

API Endpoints

MethodPathAuthDescription
GET/api/v1/onboarding/statusSessionCheck if onboarding is completed
POST/api/v1/onboarding/completeSessionMark onboarding as completed

Checking Onboarding Status

sh
curl http://localhost:8080/api/v1/onboarding/status \
  -H "Authorization: Bearer $SESSION"

Response:

json
{
  "completed": false
}

Environment Setup

Before running the onboarding wizard, ensure the following infrastructure is running:

ServiceRequiredPurpose
PostgreSQLYesData persistence
Valkey/RedisNoSessions, caching, rate limiting, leader election
RabbitMQNoAsync alert processing and investigation pipeline

Start all services with Docker Compose:

sh
docker compose up -d

See Also

Released under the MIT License.