Live Demo
import { Aside, Steps, Tabs, TabItem } from ‘@astrojs/starlight/components’;
A public Kotauth instance is running at demo.kotauth.com with realistic pre-seeded data. No Docker install, no .env file, no setup — just open it and explore.
What’s in the demo
Section titled “What’s in the demo”The demo seeds two complete workspaces on startup:
Acme Corp (/t/acme/...) — a mature workspace with:
- 4 users: Sarah Chen (admin), Alex Kumar (developer), Maria Santos (viewer), James Wilson (developer)
- Roles: admin, user, developer, viewer
- Groups: Engineering, Product (with role inheritance)
- 2 registered OAuth applications with client credentials
- Webhook endpoints subscribed to identity events
- Backdated audit log entries showing realistic activity
StartupLabs (/t/startuplabs/...) — a smaller workspace with:
- 2 users: Lisa Park (admin), Tom Chen (developer)
- Roles: admin, user
- 1 registered OAuth application
- Separate audit history
What you can do
Section titled “What you can do”Once logged in as an admin, you can explore:
- User management — search, filter, view profiles with roles/groups/member-since dates
- RBAC — create roles and groups, assign users, see composite inheritance in action
- OAuth applications — inspect registered clients, view client IDs and redirect URIs
- Audit logs — filter by event type, see timestamped entries for every auth operation
- API keys — view scoped keys with SHA-256 hashed storage
- Webhook endpoints — see configured URLs and delivery history
- White-label theming — each workspace has independent CSS theming
- Self-service portal — visit
/t/acme/accountto see the user-facing portal
Data resets
Section titled “Data resets”The demo instance resets periodically. Any changes you make (new users, modified roles, etc.) will be reverted on the next restart. The seed service is idempotent — it creates data only if it doesn’t already exist.
Deploy your own demo
Section titled “Deploy your own demo”You can run the same demo instance locally with a single environment variable:
Add this to your .env file:
KAUTH_DEMO_MODE=trueThen start normally:
docker compose up -dKotauth will seed both workspaces on startup. The demo banner with admin credentials will appear on all pages.
If you’re running the container directly:
docker run -e KAUTH_DEMO_MODE=true \ -e KAUTH_BASE_URL=http://localhost:8080 \ -e KAUTH_SECRET_KEY=your-32-char-key-here \ -p 8080:8080 \ ghcr.io/inumansoul/kotauth:latestHow it works
Section titled “How it works”When KAUTH_DEMO_MODE=true:
- DemoSeedService runs after Flyway migrations on startup
- Creates tenants, users (with bcrypt-hashed passwords), roles, groups, applications, webhooks, and audit entries
- All seed operations are idempotent — safe to restart without duplicating data
- A demo banner renders at the top of every page showing workspace credentials
- The banner is CSS-only (no JavaScript) and uses
position: stickyto stay visible while scrolling
The seed data is designed to demonstrate every major Kotauth feature in a realistic context, not just populate empty tables.