What is ULAMS and who is it for?
ULAMS is an open-source LMS for creating and delivering courses. It helps teams turn product documentation, manuals and internal material into training for customers, developers and employees.
FAQ
What ULAMS is, how courses are built from your sources, what self-hosting takes, and how it connects to the rest of your stack.
ULAMS is an open-source LMS for creating and delivering courses. It helps teams turn product documentation, manuals and internal material into training for customers, developers and employees.
Headless means the content and features of the platform are available through an API, independently of the user interface. You can use the interface that ships with ULAMS or build your own learning experience inside your application.
Yes. The site has demos you can open as a learner and as an administrator, with no account. The demo environments are reset regularly, so they are not a place to keep your own material.
Authors create and manage courses in the admin panel and the Studio.
ULAMS combines a backend available through an API, self-hosting, and optional course creation from your sources under the author’s control.
It works best where integrations, your own infrastructure or a custom learning experience matter.
The Course Builder accepts Markdown, PDF and DOCX documents.
References let you check the fragment of the document a lesson or question is based on.
In the Course Builder the author approves the course structure and every proposed change.
Living Course compares source versions and points to the parts of the course that may need an update.
When you use AI generation, the fragments of your material needed for the task are sent to the configured model service.
Yes. AI is optional.
Yes. ULAMS accepts SCORM 1.2 and SCORM 2004 packages and supports H5P content and cmi5 packages.
ULAMS imports SCORM packages and imports and exports courses in the .ulam format.
Learner-facing pages are built to WCAG 2.2 AA: keyboard navigation, visible focus, text alternatives and reduced motion.
Yes. ULAMS runs on your own server in containers.
A standard deployment needs a server with 64-bit Linux, Docker Engine and Docker Compose v2.
The documentation suggests about 2 vCPU, 4 GB RAM and 40 GB SSD for tests with a few users, and 4 vCPU, 8 GB RAM and 80 GB SSD for a small production deployment.
Yes. Install the CLI and run ulams stack up with Docker Compose available.
Use Docker Compose on your own server or native Kubernetes manifests on an existing cluster.
Run ulams stack down. Data and credentials remain available when you run stack up again in the same installation directory. Only stack down --purge --yes deliberately removes persistent data.
The platform code is open source under the MIT licence.
Back up the database and files first, then follow the upgrade steps for your deployment in the documentation.
Yes. Integration goes through the REST API, so your application can be written in Python or any language that speaks HTTP.
The CLI and MCP interface let compatible agents work with the platform. You can use Claude Code, Codex, OpenCode or Gemini CLI, or integrate directly through the REST API.
Yes. The platform is modular and the source code is open.
Yes. ULAMS supports many academies, called tenants.
Yes. An academy can have its own name, theme, accent colour and domain. For deeper changes you can extend the frontend that ships with ULAMS or build your own interface on the ULAMS API.
The platform includes modules for prices, payments, cart and coupons.
Start with the documentation.
ULAMS is developed in the open on GitHub.