Moodle VPS HostingYour Own Learning Platform
Run Moodle for your school, institute or company on a server you control. We install Moodle with PHP-FPM, your database, cron every minute and HTTPS on a hardened KVM VPS, with moodledata kept outside the web root and Redis on request.
Full root & SSH NVMe storage Daily backups Anti-DDoS 99.9% uptime SLA 11 locations
-
Reserved vCores and RAM
Quizzes and exams on resources that are yours.
-
Mumbai location
Low latency and data in India for Indian learners.
-
Root and SSH access
Plugins, PHP settings and CLI upgrades.
-
Daily backups
Automatic backup of the previous 24 hours.
Why Host Moodle on a VPS
Hosted LMS plans cap users and plugins. Shared hosting struggles with Moodle's cron, settings and quiz peaks. A VPS handles both.
-
No user caps from a plan
Add students, teachers and courses as far as the server's resources allow.
-
Any plugin or theme
Install plugins from the Moodle plugins directory and the theme your institution wants.
-
Cron every minute
Moodle needs its scheduled tasks to run every minute for notifications, grading and cleanup.
-
Ready for exam peaks
Reserved vCores and RAM for the moments when a whole class starts a quiz at once.
How Moodle Is Set Up
A PHP application with its data folder outside the web root, a database, a cache and a scheduler.
Request from a browser or app (HTTPS)
-
Web server
NGINX or Apache
HTTPS and static files, passing PHP to PHP-FPM.
-
PHP runtime
PHP-FPM + OPcache
Runs Moodle with the settings it requires, such as max_input_vars of 5000.
-
Cache
Redis (optional)
Sessions and the Moodle Universal Cache.
-
Database
MariaDB, MySQL or PostgreSQL
Users, courses, grades and logs.
-
Files
moodledata on NVMe
Uploads and course files, outside the web root.
Worth knowing
- moodledata must never be inside the web root.
- Run cron every minute with admin/cli/cron.php; Moodle warns if it does not.
- Check Moodle's release notes for the PHP and database versions your release needs.
- Course files live in moodledata, so plan NVMe storage for videos and uploads.
What You Can Run
-
Schools and colleges
Courses, assignments, quizzes and gradebooks.
-
Coaching institutes
Online test series and study material for students.
-
Corporate training
Onboarding, compliance and certification courses.
-
Online course businesses
Paid enrolments with payment plugins.
-
Blended learning
Classroom teaching with online assignments and forums.
-
Staging copies
Test upgrades and plugins before term starts.
VPS Plans for Moodle
Size by how many people use Moodle at the same moment, especially during quizzes. VPS-2 is a common start for a school or institute.
VPS-1
Small websites, APIs, bots and development servers.
- 2 vCores
- 4 GB RAM
- 40 GB NVMe
- 500 Mbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-2
Production apps, WordPress and online stores.
- 4 vCores
- 8 GB RAM
- 75 GB NVMe
- 1 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-3
Busy stores, SaaS products and several projects.
- 6 vCores
- 12 GB RAM
- 100 GB NVMe
- 2 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-4
High-traffic apps, large databases and agencies.
- 8 vCores
- 24 GB RAM
- 200 GB NVMe
- 3 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
* Unlimited traffic in Europe and North America. In Mumbai, Singapore and Sydney a monthly allowance applies (VPS-1 500 GB, VPS-2/VPS-3 1 TB, VPS-4 3 TB), then speed is limited to 10 Mbps until the next month.
Which Plan for Your Moodle Site
Moodle's own rule of thumb is roughly 1 GB of RAM for every 10 to 20 users active at the same time. Plan for your busiest exam, not an average day.
| Workload | Start with | Why |
|---|---|---|
| Pilot or small department | VPS-1 2 vCores · 4 GB RAM | A few dozen learners online at once. |
| School or coaching institute | VPS-2 4 vCores · 8 GB RAM | More PHP workers and Redis for busier periods. |
| College with large quizzes | VPS-3 6 vCores · 12 GB RAM | 6 vCores and 12 GB RAM for exam peaks. |
| Large institution | VPS-4 8 vCores · 24 GB RAM | 24 GB RAM and 200 GB NVMe for courses and files. |
A starting point, not a limit: every plan upgrades in place, keeping your data, IP address and configuration.
Hosted LMS Plan or Your Own Moodle?
Hosted plans remove server work but cap users and plugins. Your own Moodle trades a little admin for freedom.
| Feature | Hosted LMS plan | Moodle VPS |
|---|---|---|
| Pricing | Plans by number of users | Flat server cost |
| Plugins and themes | Limited selection | Any from the plugins directory |
| Users and courses | Capped by plan | Limited only by resources |
| Data location | The provider's choice | Any of our 11 locations, including Mumbai |
| Server administration | Handled by the provider | Yours, after our free setup |
| See Plans |
Upgrading Moodle Safely
The usual upgrade sequence for a Moodle installed from Git; take a backup first.
-
Turn on maintenance mode
Learners see a notice instead of errors.
-
Update the code
Pull the new release on your stable branch.
-
Run the upgrade
Applies database changes for core and plugins.
-
Purge caches and reopen
Clear cached data, then end maintenance mode.
# 1. Turn on maintenance mode
cd /var/www/moodle && sudo -u www-data php admin/cli/maintenance.php --enable
# 2. Update the code
sudo -u www-data git pull
# 3. Run the upgrade
sudo -u www-data php admin/cli/upgrade.php --non-interactive
# 4. Purge caches and reopen
sudo -u www-data php admin/cli/purge_caches.php
sudo -u www-data php admin/cli/maintenance.php --disable
Example commands; adjust names, paths and versions to your project. Deploying and maintaining your application is yours to do (or ask us for a quote).
Installed and Secured Before You Log In
The VPS is unmanaged: after handover the server is yours to run. Before that, our engineers do the first setup once, free, so you start from a hardened server with Moodle in place.
-
Choose a plan and location
Pick the resources you need and the datacentre closest to your users.
-
Tell us your Moodle setup
Versions, database and domain: at order or right after.
-
We install and secure it
Server hardened, Moodle installed and tested, HTTPS on your domain.
-
You take over with root
SSH access to a working server, ready for your code and data.
Your Moodle setup
- Moodle on your domain with HTTPS
- PHP-FPM with the extensions and settings Moodle requires
- MariaDB, MySQL or PostgreSQL with a Moodle database
- moodledata outside the web root and cron every minute
- Redis for sessions and caching on request
Yours to run after handover
- Ongoing server administration
- Application maintenance and updates
- Debugging your code
- Migrating existing sites or data
Not included in the free setup, but we can quote for it. No control panel by default: CloudPanel, HestiaCP or Virtualmin on request at no cost; cPanel and Plesk need their own licence.
Platform Specs and Locations
The same KVM platform on every plan; only the CPU, RAM, storage and port speed change.
| Virtualisation | KVM with reserved vCores and RAM |
|---|---|
| Storage | NVMe SSD on every plan |
| Network | Dedicated IPv4 and IPv6, 500 Mbps to 3 Gbps per plan |
| Operating systems | Ubuntu 26.04, 24.04 and 22.04 LTS · Debian 13, 12 and 11 · AlmaLinux · Rocky Linux · Fedora · FreeBSD |
| Access | Full root over SSH, key-based login |
| Backups | Automatic daily backup of the previous 24 hours; snapshots and longer retention on request |
| Protection | Always-on anti-DDoS mitigation |
| Availability | 99.9% uptime SLA |
Secured before we hand it over
- Non-root sudo user created for daily work
- SSH key login, password login for root disabled
- Firewall (UFW) open only for the ports you use
- Fail2ban blocking repeated login attempts
- Automatic security updates enabled
- Free Let's Encrypt SSL on your domain
- Timezone, swap and hostname configured
Asia-Pacific
- Mumbai
- Singapore
- Sydney
Europe
- London
- Limburg
- Roubaix
- Gravelines
- Strasbourg
- Milan
- Warsaw
North America
- Beauharnois
Availability per location changes with demand; we confirm your location before setup. In Mumbai, Singapore and Sydney each plan includes a monthly traffic allowance (VPS-1 500 GB, VPS-2 and VPS-3 1 TB, VPS-4 3 TB); beyond it, speed is limited to 10 Mbps until the next month.
Who a Moodle VPS Suits
-
Schools and colleges
An LMS for every class, with data in India if you choose Mumbai.
-
Coaching institutes and trainers
Test series and course material without per-student fees.
-
Companies
Internal training and certification on your own server.
Security and Performance for Moodle
Security
- Apply Moodle security releases promptly.
- Keep moodledata outside the web root.
- Install plugins only from the Moodle plugins directory or trusted developers.
- Enforce strong passwords and consider multi-factor authentication for admins.
Performance
- Run cron every minute from the system.
- Use Redis for sessions and caching on busy sites.
- Size PHP-FPM workers for quiz peaks, not average load.
- Store large videos outside Moodle or keep them compressed.
Questions Before You Deploy
Not covered here? Ask an engineer before you order.
Run Moodle on Your Own Server
Choose a plan sized for your busiest exam. We hand over Moodle with cron, HTTPS and your database ready.