The WarmDesk seed program: fill your database with realistic demo data
A fresh WarmDesk install starts with an empty database. That is perfect for production, but awkward when you want to show the product: boards, charts, direct messages, and reports all look best when there is something to click.
The seed program solves that.
It is a small Go commandβdistributed as warmdesk-seed next to the main warmdesk binaryβthat populates the database with a consistent, realistic dataset: multiple projects (Kanban and Scrum), a hundred-plus cards with markdown descriptions, customers, contracts, group chats, time entries, and more.
What the seed does
In one run, the tool creates:
System settings β default column and label names for new projects, plus company name, logo path, and login branding so the login screen looks polished immediately.
Users β demo accounts (global roles from admin down to viewer) and DiceBear avatars.
A persistent system admin β the
tonkaccount is created if missing and is not removed when you use--reset, so your own admin login survives demo wipes.Six projects β including Kanban boards (e.g. Website Redesign, Marketing Campaigns) and Scrum projects (Product Platform, API Platform) with columns, labels, sprints, releases, and card history for analytics charts.
Over a hundred cards β assignments, labels, priorities, dates, sub-cards, cross-references, checklists, comments, and rich Markdown bodies (bugs with reproduction steps, features with acceptance criteria).
Discussion topics β threaded conversations inside projects.
Direct and group conversations β realistic message history for messaging UI and notifications.
Customers and contracts β CRM-style data tied to projects.
User groups β e.g. Frontend Team, DevOps Team, with memberships and access patterns.
Time entries β weeks of sample data for the time-reporting and weekly grid views.
The script is idempotent: if it finds an existing demo.admin user, it exits without duplicating data, unless you pass --reset.
How to run it
From the repository (development)
Run from the backend directory so the module path resolves correctly:
cd backend
go run ./cmd/seedOptional flags:
go run ./cmd/seed --config /path/to/warmdesk.yaml # use a specific config file
go run ./cmd/seed --reset # remove demo data first, then re-seedThe --reset path deletes records associated with the known demo users and projects (by username and project slug), then rebuilds the demo world.
From a release bundle
Release archives ship warmdesk-seed alongside warmdesk. Use the same working directory and config as the server (so the database DSN matches):
cd dist
./warmdesk-seed
./warmdesk-seed --resetExample: first-time seed output
Below is real output from go run ./cmd/seed against a local SQLite database.
Timestamps and row counts may differ slightly as the dataset evolves between releases.
2026/05/10 13:25:56 Connected to sqlite database
π± Seeding demo dataβ¦
β Configuring system settingsβ¦
β Creating usersβ¦
Created system admin: tonk (tonk@smartowl.nl)
Created 10 demo users (password for all: demo1234)
β Creating projectsβ¦
Created 6 projects
β Starring projectsβ¦
Starred 23 projectβuser pairs
β Creating cardsβ¦
Created 115 cards
β Creating sprints for scrum projectsβ¦
Created 11 sprints
β Creating card history for CFD chartβ¦
Created 123 card history records
β Creating releasesβ¦
Created 3 releases
β Creating card cross-referencesβ¦
Created 6 card cross-references
β Creating topicsβ¦
Created 9 topics
β Creating conversationsβ¦
Created 6 conversations (49 messages)
β Creating customers and contractsβ¦
Created 3 customers with contracts
β Creating groupsβ¦
Created 3 groups
β Creating time entriesβ¦
Created 60 time entries for 5 users
β
Demo data seeded successfully!
Accounts (password: demo1234)
βββββββββββββββββββββββ¬ββββββββββββββββββββββ¬βββββββββ
β Username β Display name β Role β
βββββββββββββββββββββββΌββββββββββββββββββββββΌβββββββββ€
β tonk β Ton Kersten β admin β β system admin (not reset)
β demo.admin β Alex Admin β admin β
β demo.sarah β Sarah Chen β user β β project admin: website-redesign
β demo.marc β Marc Dubois β user β β project admin: mobile-app-v2
β demo.lisa β Lisa Park β user β β project admin: devops-infra
β demo.priya β Priya Nair β user β
β demo.james β James O'Brien β user β
β demo.elena β Elena KovaΔ β user β
β demo.raj β Raj Sharma β user β
β demo.viewer β Victor Viewer β viewer β
βββββββββββββββββββββββ΄ββββββββββββββββββββββ΄βββββββββThe command ends with a summary box of accounts, projects, cards, conversations, customers, groups, and starred projectsβhandy for checking that everything you care about landed in the database.
When data is already present
If you run the seed again without --reset, it stops early:
β Demo data already present (username 'demo.admin' found).
Run with --reset to wipe and re-seed.That guard avoids accidental duplicates and keeps CI or scripted installs predictable.
Logging in after a seed
All demo users share the same password documented in the summary: demo1234 (change it immediately on any machine exposed to a network).
Start the server, open the WarmDesk URL, and sign in as demo.admin or any listed demo userβor as tonk if that account was created on your system.
Why ship a seed program at all?
Self-hosted software is judged in minutes. The seed program gets a reviewer from βempty columns and zero chartsβ to a believable team workspace in one command, without importing opaque SQL dumps or clicking through dozens of admin screens.
If you maintain a WarmDesk instance for training or sales demos, keep warmdesk-seed --reset in your back pocket: wipe, re-seed, and you are back to a known-good story for every session.