MoodleCloud vs self-hosted Moodle

MoodleCloud suits small programs that need no plugins and accept its user and storage caps. Self-hosted Moodle suits programs that need custom integrations, plugins, or control over data location and upgrade timing.

On this page

When MoodleCloud fits and when self-hosted Moodle is the better choice

Choose MoodleCloud when your learning program is small, your requirements are standard, and you want Moodle HQ to run the servers and apply upgrades. The MoodleCloud plans top out at 750 users and 50 GB on the Standard plan, and no plugins or integrations can be installed on any MoodleCloud site. Moodle's team hosts and manages each site and keeps it on the latest Moodle LMS version, which removes server patching and upgrade scheduling from your team. The software is the same GPL-licensed Moodle LMS either way, so this decision turns on hosting, limits and control. Start by counting peak users and storage across the next contract year and confirming that no required feature depends on a plugin.

Choose self-hosted Moodle when the program depends on a plugin, single sign-on, a custom integration or a data location you must control. Core authentication already covers LDAP, LTI, OAuth 2, Shibboleth and web services, and an SSO option such as the SAML2 Single sign on plugin requires a self-hosted install. Self-hosting also lets you choose when to move between releases. Moodle 4.5 LTS receives security support until October 4, 2027, and Moodle 5.3 is the LTS with security support until October 1, 2029, so you can plan a window around your own change calendar. Confirm with Moodle HQ, in writing, where MoodleCloud stores data and whether that location meets your residency rules before you commit.

Before you decide, write down the three requirements you cannot give up, such as a specific SSO provider, a course-selling payment method or a named plugin, and test each against the plan page and the plugin list. If any requirement fails, the self-hosted route adds server, PHP and database work that someone must own, including version checks such as the PHP 8.3 minimum for Moodle 5.3 and the /public document root introduced in Moodle 5.1. Ask a provider for a fixed-scope quote that lists those tasks. DeployOpen plans, implements and supports self-hosted platforms inside your own infrastructure, so that quote can cover the install, the integrations and the upgrade plan together.

How MoodleCloud and self-hosted Moodle compare on limits, features and cost drivers

This table sets MoodleCloud's published plan limits and features beside what self-hosting Moodle changes, so you can see where a hosted plan stops fitting. Read the MoodleCloud rows as fixed published terms and the self-hosted rows as costs you carry yourself. The main takeaway is that a hosted plan trades control and extensibility for predictable plan pricing, while self-hosting removes Moodle HQ's caps and puts infrastructure, plugin and staffing costs on your budget.

FactorMoodleCloudSelf-hosted Moodle
User and storage limitsStarter 50 users and 1 GB; Mini 100 users and 2.5 GB; Small 200 users and 5 GB; Medium 500 users and 20 GB; Standard 750 users and 50 GB (MoodleCloud plans page)No Moodle HQ plan caps. Capacity depends on your database, storage and server sizing, which you must confirm in your own environment
Annual plan price (AUD)Starter 230; Mini 380; Small 700; Medium 1,700; Standard 3,000, billed annually (MoodleCloud plans page)No Moodle HQ subscription. Software is GPL-3.0-or-later and free to use; hosting, staffing and support are your costs
Plugin and integration installsNot permitted. Sites cannot install any plugins or integrations (MoodleCloud plans FAQ)Possible. Plugins such as SAML2 single sign-on can be installed, subject to compatibility with your Moodle version
Custom domainAvailable on Medium as a 160 AUD per year add-on and included in Standard (MoodleCloud plans page)Set by your own DNS, web server and certificate management
Stripe course salesAvailable from the Small plan up (MoodleCloud plans page)Depends on the payment plugin you choose and install, and on your compliance obligations for payment data
Moodle App PremiumIncluded in all plans; the FAQ values it at 499 euros per year (MoodleCloud plans page)Not included in a self-hosted install. Confirm app options and their costs with Moodle before you plan mobile access
Upgrades and maintenanceMoodle's team hosts, manages and keeps sites on the latest Moodle version (MoodleCloud plans page)Your team or partner schedules upgrades, testing, backups and the web root change to /public from Moodle 5.1 onward
Authentication optionsLimited to what the hosted plan exposes; confirm SSO support with Moodle before committingCore authentication includes LDAP, LTI, OAuth 2, Shibboleth and external database, with SAML2 available as a plugin
Support modelSelf-service knowledge base; larger or complex needs are referred to Moodle Solutions for a quoteCommunity support plus any paid partner or support contract you buy; confirm response terms in writing

What data location and access control change between the two models

The two models differ mainly in who operates the servers, who holds administrative keys and who produces the evidence an auditor will ask for. MoodleCloud moves hosting and most operational control to Moodle HQ, while self-hosting keeps those decisions and their paperwork with your organization.

Where learner data sits

On MoodleCloud, Moodle's team hosts and manages each site, so the hosting location and any sub-processors are set by Moodle HQ rather than by you. On a self-hosted Moodle, the database, course files and backups stay in the cloud account, data center or air-gapped network you choose. Ask Moodle HQ in writing which regions host MoodleCloud data, where backups are kept and which sub-processors touch learner records. Confirm the answer matches your data residency rules before you enroll learners.

Administrative access to the platform

MoodleCloud gives the customer site administrator access to Moodle's course and user tools, but the underlying servers, database and web server are operated by Moodle's team. Self-hosting gives your administrators root, database and web server access, so access control becomes your job. Define who holds server, database and Moodle site administrator roles, and record how privileged access is granted and removed. Those records are often the first thing an assessor requests.

Audit evidence and control documentation

DeployOpen prepares systems, controls and evidence for compliance assessments, but it does not issue audit reports, attestations or certifications. Independent auditors and certification bodies do that work. For MoodleCloud, ask Moodle HQ which third-party reports or security documentation it can provide and under what terms, then have your auditor review them. For self-hosting, your team or DeployOpen produces the configuration records, logs and change history that the auditor samples.

Patching and version control

MoodleCloud sites are kept on the latest Moodle version by Moodle's team, which removes the upgrade step from your calendar but also removes your ability to delay a change during an audit window. Self-hosted sites follow the Moodle release schedule you set, and you are responsible for testing and applying security updates. Agree in writing how and when MoodleCloud changes are announced, and whether you can request a delay for a regulated examination period.

Incident response responsibility

When a breach or outage affects learner data, the contract determines who notifies whom and who investigates. On MoodleCloud, Moodle HQ runs the hosting and is the first party to detect and contain an incident on its infrastructure. Self-hosting places detection, containment, forensics and regulator notification on your team or your chosen partner. Map each notification duty to a named party in your incident plan, and test that plan against both models before you choose one.

Which integrations and plugins require self-hosting

MoodleCloud sites cannot install any plugins or integrations, according to the MoodleCloud plans FAQ. That single constraint decides more than any feature table. If your learning program depends on a specific external system, a custom grading tool, or a payment or identity connector that is not built into the core product, self-hosting is the only route that lets you add it yourself. Start by listing every integration the program needs, including the student information system, HR or CRM feeds, single sign-on, video tools and reporting exports, and mark each one as core or optional.

Moodle core already ships several authentication options: manual accounts, email self-registration, external database, LDAP, LTI, OAuth 2, Shibboleth and web services, as listed in the core authentication plugins directory of the Moodle GitHub repository. Check each of these against your identity setup. Whether a MoodleCloud plan exposes the settings you need, such as an LDAP bind account or an LTI tool registration, is a question to put to Moodle directly, because the plans page does not answer it. SAML2 single sign-on is not in core. It comes from the third-party SAML2 Single sign on plugin, which a self-hosted site can install and which you should review for its maintenance status and compatibility with the Moodle version you plan to run.

Where a need falls outside both core and what MoodleCloud allows, the FAQ points customers to Moodle's premium solutions team for a quote. Treat that as a scoped engagement: write down the integration, its data flow, the owner who will maintain it and the Moodle release it must survive. Ask whether the quote covers testing against each new major release, since an integration that works today may need rework at the next upgrade. Self-hosted sites carry that maintenance burden themselves, or through a partner, so include it in the cost comparison.

What your team runs in each hosting model

On MoodleCloud, Moodle's team hosts and manages the site and keeps it updated to the latest version of Moodle LMS. Your team does not operate the PHP runtime, the database, the web server or the backup chain. Your responsibility is the learning content itself, the user population, and the configuration choices the plan exposes. The trade-off is that the site runs on the hosted plan's boundaries, and the FAQ states that MoodleCloud sites cannot install any plugins or integrations.

  • Hosting and patching: Moodle's team runs the infrastructure and applies updates to the latest Moodle version on your behalf.
  • Your responsibilities: Course build, user enrolment, roles, branding and day-to-day administration within the plan.
  • Plan limits: Plans are capped by users and storage, from 50 users and 1 GB on Starter up to 750 users and 50 GB on Standard.
  • Custom domains and sales: Custom domains are a Medium add-on or included in Standard, and Stripe course sales start at the Small plan.
  • Upgrades: Plans can be upgraded at any time through the MoodleCloud Customer Portal.

Before committing, confirm with Moodle which plan limits, domain options and support route apply to your user count and course-selling model.

How to move a Moodle site from MoodleCloud to self-hosting, or back

This sequence gets a working Moodle site, with its users, courses and custom domain, from one hosting model to the other without losing content or breaking the learner experience. It ends with the old site retired and the new one confirmed by the people who use it.

  1. Inventory plugins, integrations and limits first

    Before any data moves, list every plugin, integration and custom domain the program relies on, plus current user and storage counts. MoodleCloud sites cannot install plugins or integrations, so anything on that list is a reason to self-host rather than a migration task. If you are moving back to MoodleCloud, compare the list against the plan's user cap (the Standard plan lists 750 users and 50 GB) and drop anything it cannot support. The output is a signed-off requirements list that decides the target. Ask Moodle HQ which export and import options apply to your plan before committing to either direction.

  2. Confirm export and import options with Moodle HQ

    Ask Moodle HQ, through the MoodleCloud Customer Portal or the sales team, what backup, export and import routes exist for your plan and whether they cover users, course content, grades and files. Get the answer in writing, including any limits on file size or data types. Do not assume a full site backup is available until the vendor confirms it. The output is a written confirmation that the export path works for your data.

  3. Export courses, users and files from the source site

    Run the export route confirmed in the previous step on the source site and store the output in a location the team controls. Record user counts, course counts, enrolments and file storage totals so they can be compared after the import. If you are self-hosting, also capture the source Moodle version, because the target must support it. The output is a stored export and a reconciliation sheet of counts.

  4. Provision the target stack for the Moodle version

    Choose the target Moodle version, then build a server that meets its published requirements. For Moodle 5.3, that means 64-bit PHP 8.3 or later, and PostgreSQL 17, MySQL 8.4, MariaDB 11.4 or SQL Server 2019 or later. Sites must already run Moodle 4.4 or later to upgrade to 5.3. Also set the web server document root to the /public directory, since directory listings or errors can appear otherwise. Your team, a Moodle Partner or DeployOpen can do this work, and the fee depends on who does it. The output is a documented, reproducible stack that passes the version's requirement check.

  5. Restore the data and test the critical paths

    Import the export into the self-hosted instance, then install the plugins and integrations from the requirements list. Test sign-in through each authentication method in use, enrolments, grade reports, file downloads, payments and any video conferencing. Compare the imported counts against the reconciliation sheet and investigate any gap. The output is a test log with each critical path marked as passed, failed or deferred, with a named owner for every open item.

  6. Cut over the custom domain and freeze the source

    Once testing passes, freeze content changes on the source site, run a final export if needed, and point the custom domain's DNS records at the new server. Monitor sign-ins, error logs and support tickets during the first working day. For a move back to MoodleCloud, the custom domain is handled through the plan, and Standard includes it while Medium offers it as an add-on. Your team should be able to roll back DNS if a critical failure appears. The output is a live domain serving the new site with a documented rollback plan.

  7. Retire the old site and keep the evidence

    After the new site has run stably for an agreed period, cancel or downgrade the old plan, and remove the old site's data according to your retention policy. Keep the export, the reconciliation sheet and the test log so that audit or support questions can be answered later. Ask Moodle HQ how it handles data after cancellation and confirm the timing in writing. The output is a closed source site, a retained evidence set and a record of when each decision was taken.

Questions buyers ask before choosing MoodleCloud or self-hosting

What does self-hosting Moodle cost, and what drives it up?

Moodle's core code is GPL-3.0 licensed, so there is no license fee for the LMS itself. The recurring cost is the infrastructure and the people who run it: servers or cloud accounts, PHP and database hosting, backups, monitoring, storage that grows with course media, and staff time for patching and upgrades. Costs rise with concurrent users, video and file volume, the number of plugins you maintain, and how many environments (test, staging, production) you keep. Ask any provider for a quote that separates one-time setup, recurring hosting, and recurring support, and that names which party handles Moodle upgrades, plugin compatibility checks and restores. DeployOpen does not publish a price list; a quote follows from a written scope.

What does a MoodleCloud annual plan include, and where do the caps bite?

MoodleCloud annual plans are billed in Australian dollars. The Starter plan is 230 AUD per year for 50 users and 1 GB of storage, Mini is 380 AUD for 100 users and 2.5 GB, Small is 700 AUD for 200 users and 5 GB, Medium is 1,700 AUD for 500 users and 20 GB, and Standard is 3,000 AUD for 750 users and 50 GB. The caps that usually bite first are user count and storage, since video-heavy courses fill 1 to 5 GB quickly. Plans cannot install plugins or integrations, custom domains are a 160 AUD per year add-on on Medium and included on Standard, and Stripe course sales start at the Small plan. Moodle's team hosts and updates the site, and a 28-day free trial is offered. Confirm current prices with Moodle before budgeting, since the published figures are the only ones this page can cite.

Can we run a self-hosted Moodle without outside help?

Yes, if your team has Linux server administration, PHP and database skills, and the time to patch on Moodle's release cadence. Moodle ships major releases in April and October and minor point releases every two months, so someone must own that calendar. Upgrades carry real requirements: Moodle 5.1 requires 64-bit PHP 8.2 or later and sites must be on Moodle 4.2.3 or later, while Moodle 5.3 requires PHP 8.3 or later and sites must run Moodle 4.4 or later. From Moodle 5.1 the web server document root must point to the /public directory. Teams without this depth often bring in a partner for setup, hardening and upgrades. DeployOpen plans, implements, hardens, backs up, upgrades and documents self-hosted platforms in the client's own infrastructure, under fixed-scope agreements or retainers.

How long does a self-hosted Moodle setup take, and what does the buyer's team need to provide?

The timeline depends on scope, not on a single default. The main variables are the hosting target (cloud account, data center or air-gapped network), the database choice, identity integration such as LDAP, SAML or OAuth 2, the number of plugins, content migration volume, and the approval process for production access. Your team must supply infrastructure access, a named owner for decisions, identity provider details, a backup and retention policy, and test users for acceptance. Agree the timeline and deliverables in writing before work starts; any duration quoted without a written scope should be questioned. Ask any provider to list the environments, the migration steps and the acceptance tests they will deliver.

What integrations and plugins can only self-hosting provide?

MoodleCloud sites cannot install any plugins or integrations. A self-hosted Moodle can install plugins from the Moodle plugin ecosystem, subject to compatibility with your Moodle version. Core already includes authentication plugins for manual accounts, email self-registration, external database, LDAP, LTI, OAuth 2, Shibboleth and web services. Single sign-on through SAML 2 is available as a plugin, and custom integrations are possible in a self-hosted install. Before you commit, list the integrations you need (SSO, HR feeds, payment gateways, reporting, AI providers), then check each one against the plugin's support status for your target Moodle release. Confirm any integration you depend on with the plugin maintainer or your provider, since compatibility varies by version.

How does switching from MoodleCloud to self-hosted Moodle affect content and users?

Moving between MoodleCloud and a self-hosted site is a migration project, so plan it as one. Confirm what export and import paths Moodle provides for courses, users, grades, files and enrollments, and test them on a copy of your data before cutover. Check that custom domain, Stripe payment and course sales settings are rebuilt on the new host, that user passwords and authentication methods carry over, and that learners receive new login details if needed. Storage and course media often take the longest to move. Ask for a migration plan with a named rollback point, acceptance tests and a cutover window. Moving in the other direction, from self-hosted to a hosted plan, is constrained by the plan caps and the no-plugin rule, so check those before you leave the self-hosted environment.

Which option fits a learning program that expects to grow?

Start by writing down the growth you expect over the next few years: users, storage, integrations and whether you will sell courses. MoodleCloud suits individuals selling courses and small organisations with straightforward needs, and it offers integrated video conferencing for up to 100 users. Once you need more plugins, custom authentication, larger storage or tighter control over hosting and data location, self-hosting becomes the better fit, and it carries the upgrade and security workload that comes with it. Moodle's own page points larger or more complex requirements to its Solutions team. Ask both paths for a quote tied to the same three-year user and storage forecast so the comparison is fair.

How DeployOpen plans, implements and supports self-hosted Moodle

DeployOpen plans, implements, customizes, integrates, hardens, backs up, upgrades, documents and supports self-hosted open-source platforms inside the client's own infrastructure. For a MoodleCloud vs self-hosted Moodle decision, that means starting from your user counts, plugin and integration needs and hosting constraints, then building a Moodle environment you control.

How we scope

  • Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
  • Scope starts by mapping which plugins, identity integrations and course-selling features your program actually needs.
  • We confirm your hosting footprint, cloud accounts or data centers, and the Moodle release line you plan to run.

How we build

  • We install and configure self-hosted Moodle inside your own infrastructure, including the web server document root setup that Moodle 5.1 and later require.
  • Integrations such as single sign-on, custom plugins and payment or video tools are built and tested against your scope.
  • Hardening, backup and restore procedures are implemented and tested before go-live, alongside the PHP and database versions the chosen release requires.

How we hand over

  • Handover includes written documentation of the configuration, plugins, integrations and operating procedures for your team.
  • We document the upgrade path between Moodle releases so your staff know which versions and prerequisites apply.
  • Compliance-relevant evidence, such as access controls and backup records, is prepared for your own auditors to review.

How we support

  • Ongoing support, upgrades and continuous testing are available as retainers, scoped separately from the initial build.
  • Upgrades between Moodle releases are planned against the published support windows you choose to follow.
  • Confirm with us during scoping which support level, response expectations and testing cadence fit your program.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.