Overview
Discover what makes OpenOLAT powerful
OpenOlat is a Java‑based, modular Learning Management System (LMS) that delivers course authoring, assessment, and communication services over the web. At its core it exposes a rich set of REST endpoints, a flexible event bus, and an extensible plugin framework that lets developers embed custom business logic or integrate with external identity providers, analytics platforms, and content repositories. The application is designed to run on a conventional JEE stack (Tomcat or Jetty) and stores all data in a relational database, with PostgreSQL being the default choice.
Modular architecture
REST API
Plugin & theme system
Security & compliance
Overview
OpenOlat is a Java‑based, modular Learning Management System (LMS) that delivers course authoring, assessment, and communication services over the web. At its core it exposes a rich set of REST endpoints, a flexible event bus, and an extensible plugin framework that lets developers embed custom business logic or integrate with external identity providers, analytics platforms, and content repositories. The application is designed to run on a conventional JEE stack (Tomcat or Jetty) and stores all data in a relational database, with PostgreSQL being the default choice.
Key Features
- Modular architecture – Each functional area (course editor, assessment engine, messaging, analytics) is packaged as an OSGi bundle, allowing selective deployment and hot‑replacement without downtime.
- REST API – A versioned JSON API covers users, courses, enrolments, grades, and course material. The API is documented in Swagger/OpenAPI format and can be consumed by mobile apps, single‑page frontends, or external services.
- Plugin & theme system – Developers can ship UI themes as separate bundles that override Freemarker templates and CSS. Custom plugins may hook into lifecycle events, create new content types, or extend the LMS with additional modules such as e‑testing or video conferencing.
- Security & compliance – Role‑based access control, LDAP/SAML integration, and audit logging are baked in. The codebase follows OWASP Top‑10 mitigations and is regularly scanned for vulnerabilities.
Technical Stack
| Layer | Technology |
|---|---|
| Application server | Apache Tomcat / Jetty (Servlet 6.0) |
| Language & framework | Java 17+, Spring Boot (for micro‑services), OSGi for modularity |
| Persistence | JPA/Hibernate, PostgreSQL (default), MySQL/Oracle support |
| Template engine | Freemarker, Thymeleaf for admin UI |
| Front‑end | Vanilla JS + jQuery (legacy), Bootstrap 4, optional React/Vue integration via web components |
| Build & CI | Maven 3.8+, GitHub Actions, SonarQube |
| Containerization | Docker images available; Helm charts for Kubernetes deployments |
Deployment & Infrastructure
OpenOlat is lightweight: a single JAR can be deployed to any Servlet container, and the Docker image requires < 200 MB of RAM for a small instance. For production, it is recommended to run behind an NGINX reverse proxy with TLS termination and HTTP/2 support. The system scales horizontally by adding more application nodes behind a load balancer; the database is the single point of contention, so PostgreSQL clustering (Patroni or BDR) is advised for high availability. The application ships with a built‑in scheduler (Quartz) that can be configured via the admin UI or environment variables.
Integration & Extensibility
- SAML/OIDC – Seamless SSO with corporate identity providers.
- Webhooks & Event Bus – External services can subscribe to events such as “course completed” or “grade updated”.
- Custom REST endpoints – Developers can publish new services by annotating Spring controllers and registering them in the OSGi registry.
- Marketplace – The OpenOlat community maintains a plugin marketplace; developers can submit bundles that are automatically signed and versioned.
- Data export/import – XML/JSON dumps of courses and users are supported, enabling migration between instances.
Developer Experience
The source code is hosted on GitHub under an Apache 2.0 license, with a comprehensive developer cookbook (docs.openolat.org/manual_dev/) that walks through building from source, creating plugins, and testing. The community forum and YouTrack issue tracker provide active support, while the mailing list offers quick responses for configuration questions. Continuous integration ensures that every PR passes automated unit, integration, and security tests before merging.
Use Cases
- University LMS – Deploy a campus‑wide system that integrates with the university’s LDAP, offers e‑testing, and exports grades to the registrar.
- Corporate training portal – Embed OpenOlat in an existing intranet, hook into HR systems for employee enrolment, and use the REST API to feed data into a BI dashboard.
- MOOC provider – Run multiple isolated courses on the same instance, leverage OpenOlat’s modularity to add a video‑conferencing plugin for live sessions.
- Research project – Use the open API to collect learning analytics and feed them into a research pipeline for adaptive learning experiments.
Advantages
- Performance – The modular OSGi design keeps the footprint small; only needed bundles are loaded.
- Flexibility – Java‑based plugins can tap into the full application stack, while front‑end components can be swapped out with modern frameworks.
- Licensing – Apache 2.0 allows unrestricted use, modification, and redistribution—ideal for internal deployments that require full control.
- Community & Support – A dedicated membership program ensures long‑term maintenance, while the open‑source nature lets contributors patch security issues quickly.
OpenOlat offers a robust, extensible foundation for any organization that needs a self‑hosted LMS with tight control over data and customization. Its Java/OSGi core, comprehensive REST API, and strong community backing make it a compelling choice for developers seeking both reliability and freedom.
Open SourceReady to get started?
Join the community and start self-hosting OpenOLAT today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Haraka
High‑performance Node.js SMTP server with modular plugins
DragonFly
Self-hosted apis-services
Meelo
Self-hosted music server for collectors with flexible browsing and playback
EGroupware
Open source online office for secure, sovereign collaboration
Ombi
Easy media requests for Plex and Emby
MantisBT
Open‑source issue tracker for teams and clients