How to set up a new KoNote instance for your agency.
Time estimate: 30-45 minutes for basic setup.
Every new KoNote instance starts with no users. You need to create the first admin from the command line before anyone can log in:
# Docker:
docker-compose exec web python manage.py createsuperuser
# Direct (OVHcloud VPS, Azure, etc.):
python manage.py createsuperuserYou'll be prompted for a username and password. This creates a user with full admin access (is_admin=True).
Demo mode shortcut: If
DEMO_MODE=true, the seed process automatically creates ademo-adminuser with passworddemo1234. You can log in with that immediately and skip this step.
Azure AD (Office 365):
- Navigate to your KoNote URL
- Click Login with Azure AD
- Enter your work email and password
- An admin must then assign your program roles through the web interface
Local authentication:
- Navigate to your KoNote URL
- Enter the username and password you created above
Control your organisation's branding and behaviour.
- Open Admin -> Settings
- Click Instance Settings
- Configure:
| Field | What it does | Example |
|---|---|---|
| Product Name | Shown in header and titles | "Youth Housing -- KoNote" |
| Support Email | Displayed in footer | support@agency.ca |
| Logo URL | Your organisation's logo | https://example.com/logo.png |
| Date Format | How dates appear throughout the system | 2026-02-03 (ISO) |
| Session Timeout | Minutes before auto-logout | 30 |
- Click Save
The setup wizard guides you through the most common configuration steps in order. It covers:
- Instance settings (product name, logo, support email)
- Terminology customisation
- Feature toggles
- Programs
- Metrics
- Plan templates
- Custom fields
- Review and apply
Access it from Admin -> Settings -> Start Setup Wizard.
The apply_setup command creates a full agency configuration from a single JSON file. It is useful when a consultant or implementation lead wants to set up a new instance quickly and consistently.
If you prefer a guided web workflow, use the Setup Wizard instead.
# Apply a configuration file
python manage.py apply_setup config.json
# Preview without making changes
python manage.py apply_setup config.json --dry-runThe command will create, in order:
- Instance settings -- product name, logo, support email, date format
- Terminology overrides -- customised terms (e.g., "Client" -> "Participant")
- Feature toggles -- which modules to enable or disable
- Programs -- service lines with names, descriptions, and colours
- Plan templates -- complete templates with sections and targets
- Custom field groups and fields -- agency-specific data fields
- Metric enable/disable flags -- which metrics from the library to activate
The configuration file is a JSON document. Here is a simplified example:
{
"instance_settings": {
"product_name": "Youth Services -- KoNote",
"support_email": "support@agency.ca"
},
"terminology": {
"client": "Participant",
"target": "Goal"
},
"features": {
"programs": true,
"events": true,
"alerts": false
},
"programs": [
{
"name": "Youth Housing",
"description": "Transitional housing support for youth aged 16-24",
"colour_hex": "#6366F1"
}
],
"metrics_enabled": ["PHQ-9 (Depression)", "GAD-7 (Anxiety)"]
}See tasks/setup-wizard-design.md in the codebase for the full configuration file specification.
- The command is not idempotent -- running it twice creates duplicates. Clear the database or remove items manually before re-running.
- User accounts, custom metrics, and client data imports are handled separately through their own workflows.
- For a step-by-step, non-technical setup process, use the web interface and the Setup Wizard.
A: For Azure AD, check your email is registered. For local auth, confirm credentials with an admin.
A: Yes. All settings can be changed at any time through the admin interface.
After initial setup, continue with:
- Features & Modules -- enable the modules your agency needs
- Terminology -- customise the language
- Users & Roles -- create staff accounts