Best Self-Hosted LMS (2026): 8 Platforms Compared
The best self-hosted LMS is the one your learners can use and your team can keep running. For most organisations the self-hosted open-source LMS shortlist is short: Moodle for the broadest teaching and grading toolkit, ILIAS when you need SCORM 2004, xAPI and enterprise sign-in in one open-source package, and Open edX when you publish structured courses at scale. Canvas, Chamilo, Sakai, Forma LMS and the WordPress LMS plugins each fit a narrower case, covered below.
Before you move a course library, check four things: which SCORM version your packages use, whether certificates are built in or a plugin, which identity provider you sign in with, and who restores the system when it breaks. This comparison uses official documentation and source repositories only. Moodle, Open edX and Chamilo were checked on 14 October 2026, the other platforms on 30 October 2026.
Download the self-hosted LMS evaluation checklist (.md)
Which self-hosted LMS should you shortlist?
| Your starting point | Evaluate first | Check before committing |
|---|---|---|
| Teachers need varied activities, assignments and grading | Moodle | Required plugins, certificate setup and your actual course import |
| You need SCORM 2004, xAPI and SAML or OpenID Connect sign-in, in German or another European language | ILIAS | The PHP stack, the optional Java service for PDF certificates, and an external store for xAPI data |
| A course team needs structured publishing and flexible assessment steps | Open edX | The Studio workflow, Tutor operations and required XBlocks |
| A university already knows Canvas and has a Ruby on Rails team | Canvas (open source) | Community-only support, no documented SCORM player, and a public repository with no updates since April 2026 |
| Trainers need learning paths, submissions and completion certificates on a PHP stack | Chamilo | Your release branch, SCORM packages and authentication configuration |
| A higher-education team runs Java and needs CAS, Shibboleth or Kerberos | Sakai | No documented certificates, and SCORM 2004 only |
| Compliance training where SCORM and certificates matter most | Forma LMS | No assignment module, and supported PHP versions that are past end of life |
| You already run WordPress and sell a few courses | Tutor LMS or Sensei LMS | Certificates, assignments and SCORM are paid add-ons or missing in the free versions |
| A small team wants certificates and compliance tracking without running a PHP stack or plugins | Our self-hosted LMS (paid, one-time licence) | It is our product, not open source; SCORM 1.2 and OpenID Connect only, no SAML or SCORM 2004 |
These are starting points, not a market ranking. A good fit still needs someone responsible for updates, learner support and recovery. If you only need attendance and renewal reminders, first check whether a training tracker would cover the job without a full LMS.
Open-source self-hosted LMS comparison: what is included and what needs setup?
Read "built in" as a capability to configure and test. It does not mean every installation has it switched on, and "not documented" means we could not find it in official sources, not that it is impossible.
| Platform | Licence | Runs on | SCORM | Certificates | Assignments | Sign-in (SSO) |
|---|---|---|---|---|---|---|
| Moodle | GPL | PHP + database | 1.2 built in; 2004 not native | Plugin for Moodle LMS | Built in, incl. group work | OAuth 2 and more |
| ILIAS | GPL-3.0 | PHP + MySQL/MariaDB; Java optional | 1.2 and 2004; xAPI and cmi5 with an external store | Built in (PDF needs Java service) | Built in (Exercise) | SAML, OpenID Connect, Shibboleth, LDAP |
| Open edX | AGPL | Tutor (Docker) | 1.2 and 2004 via XBlock | Needs platform setup | Peer, self, staff | SAML and more |
| Canvas | AGPL-3.0 | Ruby on Rails + PostgreSQL + Redis | Not documented in the open-source repo | Not documented | Built in | SAML, OpenID Connect, LDAP, CAS |
| Chamilo | GPL | PHP + database | 1.2; 2004 partial | Grade threshold | Files and text | OAuth2, LDAP |
| Sakai | ECL-2.0 | Java 17 + Tomcat | 2004 player; 1.2 not documented | Not documented | Built in | CAS, Shibboleth, SAML, LDAP, Kerberos |
| Forma LMS | GPL-2.0 | PHP 8.0–8.1 + MySQL/MariaDB | 1.2 and 2004 | Built in, incl. combined certificates | No assignment module | Social logins; LDAP and SAML not documented |
| Tutor LMS (WordPress) | GPLv3, paid Pro | WordPress | Only with Pro + a third-party plugin | Pro add-on | Pro add-on | Social login is Pro |
The notes below explain the dependencies behind these short labels. Our recommendations are interpretations of the linked documentation. We have not run a comparative installation, recovery or load test of these platforms; the trial later in this guide is a procedure for your own evaluation.
The platforms in detail
Moodle: check the plugin boundary
Moodle's Assignment activity handles text and file submissions, including group work. Its Course Certificate activity is included in Moodle Workplace, but is a separate plugin for Moodle LMS. Include that dependency in your upgrade plan rather than assuming every Moodle installation has identical certificate features.
The SCORM FAQ confirms SCORM 1.2 support and explicitly excludes native SCORM 2004 support. A package opening successfully is not evidence that its completion and sequencing rules work. Moodle also documents OAuth 2 login; test the provider, account linking and access removal your organisation needs.
ILIAS: the most complete standards support
ILIAS is open source under GPL-3.0 and widely used by European universities and public bodies. Version 11 is current, with releases 10 and 9 still maintained (release tags). It ships in 31 interface languages, German included.
Its standards coverage is the broadest in this list. It plays SCORM 1.2 and SCORM 2004, and supports xAPI and cmi5, although those two need a separate Learning Record Store, a server that keeps the xAPI tracking data (CmiXapi component). It works as both an LTI consumer and an LTI provider. Certificates and file-submission assignments (the Exercise module) are built in, and sign-in covers SAML, OpenID Connect, Shibboleth and LDAP.
The cost is the stack. The install guide asks for PHP 8.3 or 8.4, MySQL or MariaDB, and Apache or nginx, with an optional Java service that powers search and PDF certificate generation. Installation runs from the command line, and the guide offers no Docker route. One change to note if you are upgrading: CAS sign-in was removed in version 11 after being available in version 10.
Open edX: include platform configuration in the trial
Open edX Open Response Assessments can combine peer, self and staff assessment. Course certificates need platform configuration as well as course setup. Third-party authentication is an operator task, including SAML integration where required.
Its SCORM XBlock documentation lists SCORM 1.2 and 2004. Confirm the extension is available in your deployment, then enable it for the course. The current guide limits use to one SCORM component per unit, which matters when splitting a large course into lessons.
Canvas: familiar to students, hard to run yourself
Instructure publishes Canvas as open source under AGPL-3.0 and also sells it as a hosted service. Many readers know it from university, which makes it a natural candidate. Self-hosting it is a different matter.
The production guide asks for Ruby, PostgreSQL, Redis and Node on a server with at least 8 GB of memory. It assumes you already know Apache, Rails, Postgres and Passenger, and support is community-only. The Docker setup is described as for development and "not suitable for production use". The newest release tag in the public repository was created on 30 April 2026, with no updates since when we checked; we found no official explanation.
Functionally it is strong where you would expect. Assignments with file uploads are built in (submissions API), it supports LTI 1.3 and LTI Advantage, and sign-in covers SAML, OpenID Connect, LDAP and CAS plus Google and Microsoft accounts (authentication providers). We could not find a SCORM player or certificates in the open-source documentation, so test both before you rely on them.
Chamilo: use the right release documentation
Chamilo documents assignments, certificates tied to assessment thresholds, and external authentication. Its learning-path guide distinguishes SCORM 1.2 from partial SCORM 2004 support: the latter does not apply the package's sequencing and navigation rules.
The download page currently lists Chamilo 3.0.1 separately from legacy 1.11.x. The authentication guide also flags CAS as non-functional in 3.x. Check the documentation for the version you intend to install; an old integration tutorial is not proof that the same setup works on the current branch.
Sakai: Java and campus sign-in
Sakai is open source under ECL-2.0, with version 25 as the current line. It runs on Java 17 and Tomcat 9 (install guide), and the repository includes Docker examples. Assignments and a gradebook are built in, and it supports LTI 1.1 and 1.3, including acting as an LTI 1.3 tool provider.
Its sign-in options suit universities: CAS, Shibboleth, SAML, LDAP, ADFS and Kerberos are listed in the Sakai 23 system requirements. The gaps are for training use. Its SCORM player handles SCORM 2004, SCORM 1.2 is not documented, and we found no certificate feature in the official documentation.
Forma LMS: certificates first, assignments missing
Forma LMS targets corporate training. It is licensed GPL-2.0 (stated in its source files) and version 4.1 is current (changelog). It plays SCORM 1.2 and 2004, builds certificates in, including combined certificates that cover several courses, and ships in 30 interface languages.
Two limits matter. There is no assignment module, only an upload question inside quizzes. And the readme supports PHP 8.0 and 8.1, both past the end of their security support, which puts patching pressure on whoever runs it. The repository includes Google, Facebook and LinkedIn login; we found no LDAP or SAML in the official sources.
WordPress LMS plugins: easy to start, thin in the free versions
If your site already runs on WordPress, a plugin is the quickest self-hosted option. Tutor LMS has over 100,000 active installs; Sensei LMS is smaller. Both are free with paid upgrades.
Check what the free version covers. Tutor's certificates, assignments and social login are Pro add-ons, and SCORM or xAPI needs Pro plus a third-party plugin. Sensei offers certificates through a free extension but documents no SCORM, xAPI or sign-in integration. These plugins suit selling a handful of courses; compliance training with audit evidence usually outgrows them.
Self-hosted, locally hosted or on-premise LMS: what it means
A self-hosted learning management system, also called a locally hosted or on-premise LMS, runs on infrastructure you control, whether that is your own server, an internal network or a rented VPS. It can still depend on external email, video hosting and identity services. Hosting locally does not automatically make the whole service usable without an internet connection.
For Moodle, follow the installation requirements for the chosen release, including the PHP/database combination, file storage and scheduled tasks. For Open edX, Tutor's deployment guide describes the Docker services and persistent configuration you will operate. For ILIAS, Chamilo and Forma LMS, start from the install guide for your exact release; for Sakai, the binary install guide or the Docker examples in its repository.
Size the system for simultaneous activity, not just registered accounts. Fifty people taking a timed quiz together can create a different workload from hundreds of people reading occasional lessons. Test your expected mix of quizzes, uploads and video before choosing a server size.
Write down who owns these five jobs: patching the platform, checking plugin compatibility, monitoring failed background tasks, handling learner access, and restoring data. If those jobs have no owner, managed hosting belongs on the shortlist too: our cloud-based LMS comparison lists hosted platforms with their published prices.
What does a self-hosted LMS cost?
A free open-source licence can remove a software subscription. It does not remove hosting, maintenance or support costs. Compare the same twelve-month scope for every option.
| Cost | Include in your estimate |
|---|---|
| Setup | Installation, course import, email, login integration and administrator training |
| Monthly services | Compute, storage, off-site backups, email and video bandwidth |
| Routine work | Updates, monitoring and learner support time |
| Upgrades | Plugin/theme compatibility checks and a staging rehearsal |
| Recovery | A separate restore environment and time to verify the result |
| Extras | Paid extensions, external services and support agreements |
Year-one cost = setup labour + 12 × monthly services + 12 × monthly operating labour + upgrade and recovery labour + extras.
For a fictional budgeting example, use $55/month for services, 20 hours of setup, two hours of monthly operations, and six hours for upgrades and recovery, all at $40/hour. That gives $2,660 for year one before paid extensions or additional support. These are illustrative inputs, not hosting quotes or measured requirements for any platform. Replace every input with your own estimate. Stacks with more moving parts, such as Canvas or ILIAS with its Java service, usually need more setup and upgrade hours than a single PHP application.
Run the same small course through each finalist
Create one fictional teacher and two fictional learners, one lesson, a quiz and an assignment. If SCORM, SSO or certificates are mandatory, include them in this first trial. Use test accounts and content you are allowed to copy.
| Trial | Evidence to keep |
|---|---|
| Learn and return | Learner A closes the browser, signs in again and resumes with the expected saved progress |
| Assess and retry | A failed attempt stays recorded; the retry follows your chosen scoring rule |
| Grade a submission | The teacher can give feedback; Learner B cannot read Learner A's private submission |
| Issue a certificate | A passing learner qualifies and a failing learner does not |
| Import SCORM | Your package saves progress, resumes and reports the expected score and completion state |
| Change access | New login and an existing session behave according to your access-removal policy |
| Recover | The restored course and the records included in the backup match the original test evidence |
Record Pass, Fail or Not run, the version, configuration, person testing and evidence location. A marketing feature list cannot settle these questions for your course.
A Moodle course backup and restore walkthrough
This exercise follows Moodle's course backup and course restore documentation. Run it in a practice environment with fictional learners and the permissions needed to include their data.
- Complete the trial course above. Record the expected grades, submissions and completion states before making a backup.
- Open More → Course reuse → Backup. Select the course activities and the user, completion and grade-history options needed for this test. Check the review screen rather than relying on defaults.
- Finish the backup and download its
.mbzfile. Record the options used and keep the original course intact. - Open Course reuse → Restore, upload that file and select a new course as the destination. Give it a different name; do not merge it into the original.
- Review the selected data and restore. Compare the included records as teacher and learner, allowing any required background tasks to finish. Record what matched, what was excluded and any errors.
A successful course restore does not prove disaster recovery for the whole LMS. Moodle's site-backup guide covers the database, uploaded files and code. A separate recovery rehearsal must also account for configuration, plugins and access to the infrastructure. Repeat that rehearsal after changes that affect recovery.
When should you build a custom LMS?
Consider a custom system when the course or organisation model is the problem: unusual assessment rules, deeply integrated business workflows, or customer separation that the shortlisted platforms cannot meet. First write down the requirement each trial failed. That is a stronger reason to build than a preference for a different dashboard.
Our learning-management planner draws on research across 38 LMS platforms. The existing inventory records course building and durable progress in 32 of 38, assessments with attempt records in 29, and reporting in 31. Those counts help frame requirements; they do not predict your build cost or certify a finished application. The LMS benchmark shows the separate evidence from applications built with the planner.
Our self-hosted LMS
We also sell a self-hosted LMS. It is our product, sold under a paid licence rather than open source. It runs as one Docker container with its data in one Docker volume, a full backup downloads from its settings, and there is no plugin compatibility to check. You still own patching, access and recovery. It imports SCORM 1.2 and supports OpenID Connect single sign-on; its product page lists SAML, SCORM 2004 and xAPI as not included, so it is not a fit if one of those is mandatory today. You can try the live demo as a learner, trainer, manager or administrator before you buy.
The manager's reports screen in our self-hosted LMS, filled with demo data. Open the live demo and sign in as any role with one click.
Common questions
What is the best self-hosted LMS?
For most organisations, Moodle: it has the widest teaching and grading toolkit and a large plugin directory. Choose ILIAS instead if you need SCORM 2004, xAPI or SAML sign-in without plugins, and Open edX if you publish structured courses to large audiences. The right answer depends on your SCORM version, sign-in provider and who will run the server.
Can I host an LMS locally, on my own server?
Yes. Every platform in this comparison can run on a server you control, including an internal network. Plan for email delivery, backups, security updates and HTTPS; those jobs move to you when you self-host.
Which self-hosted LMS runs in Docker?
Open edX runs through Tutor, which uses Docker. Sakai's repository includes Docker examples, and our own LMS ships as one Docker container. Canvas offers Docker for development only, and the ILIAS and Forma LMS install guides describe standard PHP installs rather than Docker.
Is there a free, open-source self-hosted LMS?
Yes. Moodle, ILIAS, Open edX, Canvas, Chamilo, Sakai and Forma LMS are all free to download under open-source licences (GPL, AGPL or ECL, per the comparison table above), and Tutor LMS and Sensei LMS have free versions for WordPress. Moodle is the usual first trial; ILIAS is the free option with the widest standards support.
Is a self-hosted LMS free?
The open-source software may be free to license. Hosting, maintenance and support still need a budget. A commercial self-hosted product can also charge a licence fee. Self-hosted describes where the software runs, not its price or licence.
Self-hosted vs hosted LMS: which should you choose?
A self-hosted LMS runs on a server you control, so you get control over data location, plugins and integrations, and you also own updates, backups and recovery. A hosted (cloud) LMS is run by the vendor or a managed host for a subscription, which moves that operating work off your team. Choose self-hosting when someone on your team can own the five jobs listed above; otherwise start with our cloud-based LMS comparison. Either way, keep a staging copy to test upgrades and course changes before learners see them.
Which option should I try for existing SCORM courses?
Start by checking whether your packages are SCORM 1.2 or 2004. Moodle supports 1.2; ILIAS and Forma LMS play both; Open edX documents both through its XBlock; Sakai documents 2004; Chamilo's 2004 support is partial. Run your actual package through score, completion and resume tests before moving a course library.
Use the evaluation checklist to record that decision. If self-hosting still has no clear advantage for your team, compare the limits of free hosted LMS plans before taking on the operating work.