This guide is for Elitery engineers onboarding a new Professional or Enterprise customer. It assumes the customer has already deployed the muster backend and dashboard on their own AWS infrastructure.
Prerequisites
The customer’s environment must have:
- muster backend running and accessible (e.g.
https://api.acmebank.com/health returns 200)
- muster dashboard deployed and accessible
- PostgreSQL database provisioned and connected
- Direct database access for Elitery (for the onboarding script)
Step 1 — Set required env vars on the backend
Confirm these are set on the customer’s backend service:
| Variable | Description |
|---|
DATABASE_URL | postgresql+asyncpg://user:pass@host:5432/muster |
JWT_SECRET_KEY | Strong 256-bit random string |
CUSTOMER_NAME | Customer company name (shown in dashboard) |
RESEND_API_KEY | From resend.com — for alert emails |
EMAIL_FROM | e.g. muster@acmebank.com |
ANTHROPIC_API_KEY | For AI insights and weekly report narratives |
INTERNAL_ADMIN_SECRET | Strong secret for muster-central proxy |
Scanner credentials (configure based on what the customer wants scanned):
| Variable | For |
|---|
AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY | Cost Explorer + DNS scanning |
N8N_API_KEY + N8N_BASE_URL | n8n workflow scanning |
OPENAI_SCANNER_KEYS | OpenAI Assistants scanning |
GITHUB_TOKEN | Git repo scanning |
Step 2 — Run the onboarding script
From a machine with database access to the customer’s instance:
# Clone muster repo if not already cloned
git clone https://github.com/prawirk1/muster.git && cd muster
# Run interactively
DATABASE_URL="postgresql+asyncpg://user:pass@customer-db:5432/muster" \
JWT_SECRET_KEY="their-jwt-secret" \
PYTHONPATH=backend \
python scripts/onboard_customer.py
# Or non-interactive
DATABASE_URL="..." JWT_SECRET_KEY="..." PYTHONPATH=backend \
python scripts/onboard_customer.py \
--company "Acme Bank" \
--slug "acmebank" \
--email "admin@acmebank.com" \
--plan professional \
--currency USD \
--agent-limit 100
The script will:
- Create or update
instance_config (company name, plan, agent limit)
- Create the admin user with a temporary password (must change on first login)
- Set up model pricing
- Print the tenant ID and next steps
Step 3 — Send the customer their credentials
Send the customer:
- Their dashboard URL
- Admin email address
- Temporary password
- Instruction to change password on first login
Suggested email template:
Subject: Your muster instance is ready
Hi [Name],
Your muster AI operations dashboard is ready.
Dashboard: https://[their-dashboard-url]
Email: [admin-email]
Temporary password: [password]
You'll be prompted to change your password on first login.
Next: add alert contacts in Settings so Elitery can send you
weekly reports and anomaly alerts.
— Elitery
After the customer logs in, ask them to go to Settings → Alert contacts and add up to 3 email addresses. These receive:
- Weekly health reports (sent by Elitery every Friday)
- Anomaly alerts (within 2 business hours of detection)
Step 5 — Run baseline discovery scan
In the muster dashboard → Discovery, trigger a manual scan to establish a baseline of what’s in their environment.
You can also trigger scans via API:
curl -X POST https://[backend-url]/api/v1/discovery/scan \
-H "Authorization: Bearer [admin-token]" \
-H "Content-Type: application/json" \
-d '{"scanner": "all"}'
Share the integration guide with the customer’s developers. Recommend OTel for any coded agents:
# Customer's agent env vars (one-time setup)
OTEL_EXPORTER_OTLP_ENDPOINT=https://backend.[customer-slug].getmuster.io/api/v1/otel
OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer <service-account-jwt>
OTEL_EXPORTER_OTLP_PROTOCOL=http/json
For no-code tools (n8n, Flowise, Dify), Elitery deploys platform connectors — no action needed from the customer.
For agents with specific business-rule checks, share the manual signals guide →.
Check OTel connection status anytime:
curl -H "Authorization: Bearer <admin-token>" https://backend.[customer-slug].getmuster.io/api/v1/otel/status
Step 7 — Book kickoff call
Book a 30-minute call with the customer to:
- Walk through the discovery findings
- Confirm agents in the Discovery queue
- Confirm OTel integration is sending traces (check
/api/v1/otel/status)
- Set expectations on the weekly report cadence
Checklist