Open source · MIT licensed

The LMS built for corporate training — not classrooms.

Self-hosted on your own AWS. Plug in your identity provider, your S3, and your AI. Onboarding paths, compliance tracking, manager dashboards — and yours to customize without a fork.

KarmaLMS dashboard showing an onboarding program with course progress

Why KarmaLMS

Built for the company case from line one — not bent out of a school tool.

Built for companies

Onboarding paths assigned by role and start date — not semesters and gradebooks.

Compliance tracking

Certifications with expiry dates and automatic reminders when they lapse.

Manager dashboards

See who on your team is overdue, at a glance.

AI-native

Paste a doc — get drafted lessons and a quiz. An AI tutor grounded in your content.

Runs on your cloud

Your AWS account, your VPC, your data. One docker compose up to try it.

Customize, don't fork

Branding, theming, and a replaceable login page — all config-driven.

Bring your own everything

Three pluggable adapters. The app depends only on the interfaces, so swapping a provider is a config change — never a code change.

Auth

OIDC (Cognito, Okta, Azure AD), SAML, or trusted-JWT — append KarmaLMS to your existing portal session. Passwords never stored.

Storage

Any S3-compatible store — AWS S3, MinIO, Cloudflare R2 — via a configurable endpoint.

AI

AWS Bedrock (inference inside your own account), an OpenAI-compatible API, or none.

Get started in 30 seconds

No AWS account needed to try it — Docker brings up the whole stack.

# clone, configure, run
git clone https://github.com/ranjan98/karmalms.git
cd karmalms && cp .env.example .env
docker compose up

App + Postgres + MinIO start together. Open localhost:3000.

Go to the repository