Moodle Hosting on Your Own VPS
An LMS sized for concurrent students, with the cron and caching Moodle depends on.
Size a server for Moodle
Every stop is a real configuration you can deploy. Priced per 30 days, billed by the hour, exclusive of 18% GST.
What Moodle is
Moodle is the most widely deployed open-source learning management system. It handles courses, enrolment, assignments, quizzes, grading and reporting, and it is a large PHP application with a correspondingly large database.
Its load profile is unlike a normal website and this is the thing to plan for. Traffic is not spread through the day — it spikes hard when a class starts, an assignment is due, or a quiz opens. Two hundred students submitting a quiz in the same five minutes is a completely different demand from two hundred pageviews an hour, and sizing against average traffic will fail exactly when it matters most.
Cron is not optional. Moodle's scheduled tasks handle notifications, grade recalculation, backups, message delivery and cleanup, and the documented expectation is that cron runs every minute. Hosts that limit cron frequency produce an installation where grades lag and notifications never arrive — a failure that looks like a Moodle bug and is not.
Why run Moodle on a VPS
A one-minute cron entry, which Moodle explicitly requires.
Redis for session and application caching, which carries quiz-time spikes.
PHP worker counts you control — the ceiling on simultaneous submissions.
Root access for PHP limits, which Moodle needs raised for backups and imports.
Disk for moodledata, which grows with every uploaded assignment.
Moodle features
Courses, enrolment and cohorts
Assignments, quizzes and gradebook
SCORM and H5P activity support
Redis session and application caching
Scheduled task runner on system cron
Backup and restore per course
Plugin ecosystem
Recommended server
A starting point for Moodle, not a hard floor — size it on the sliders.
| Memory | 8 GB — sized against concurrent students, not total enrolment |
|---|---|
| CPU | 4 vCPU; quiz submissions are CPU-bound and arrive together |
| Storage | 80 GB and upward — moodledata grows with every submission |
| Operating system | Ubuntu 22.04 LTS |
How deployment works
Moodle is installed with PHP-FPM at raised memory limits, MariaDB or PostgreSQL, and Redis for sessions and caching. Cron is set to run every minute, which Moodle documents as a requirement rather than a recommendation. Size against peak concurrency — the moment a quiz opens — rather than against average traffic.
What people run it for
Schools and colleges
Course delivery with spiky, timetable-driven load.
Corporate training
Compliance courses with completion tracking and reporting.
Certification programmes
Quizzes and grading at scale, including timed assessments.
Leaving a hosted LMS
Per-student pricing replaced by a server cost.
Moodle hosting questions
Related applications
Deploy Moodle on your own server
Root access, your choice of size, and no container between you and the application.