
- AWSAvailable on Amazon Web Services
- AzureAvailable on Microsoft Azure
- GCP· nextGoogle Cloud is next on the roadmap
Moodle LMS
Moodle LMS 4.5 on Apache, PHP 8.3 and MySQL 8.0 with phpMyAdmin and Webmin - a learning platform ready for your first course. Moodle's wwwroot follows your public IP automatically, the data directory sits outside the web root, and every console password is set from your instance at first boot.
- Version
- v4.5
- Operating system
- Ubuntu 24.04 LTS
- Architecture
- x86_64
- Support
- Email support
What's installed
Every package and version on the image, identical on every cloud it ships on. Nothing else is installed.
- Moodle LMS 4.5.13
- Apache 2.4.58
- PHP 8.3.33
- MySQL 8.0.46
- phpMyAdmin 5.2.3
- Webmin 2.660
LicensingOpen source (GPL-3.0), no licence key required
Deploy anywhere
Moodle LMS on AWS and Azure.
Google Cloud is next on the roadmap. One clean-room build, one first-boot credential model, one patch cadence — identical on every cloud you run. Every identifier below is the real one; copy it and launch.
- AWSAvailable
Amazon Web Services
AMI · v4.5
AWS AMI IDShown for your region on the AWS Marketplace launch page once you subscribe.
- Released
- Root volume
- gp3 · 20 GiB
Instance types- t3a.medium
- t3.medium
- t3a.large
- m6a.large
Regions34 regions· show all· hide
- us-east-1
- af-south-1
- ap-east-1
- ap-east-2
- ap-northeast-1
- ap-northeast-2
- ap-northeast-3
- ap-south-1
- ap-south-2
- ap-southeast-1
- ap-southeast-2
- ap-southeast-3
- ap-southeast-4
- ap-southeast-5
- ap-southeast-6
- ap-southeast-7
- ca-central-1
- ca-west-1
- eu-central-1
- eu-central-2
- eu-north-1
- eu-south-1
- eu-south-2
- eu-west-1
- eu-west-2
- eu-west-3
- il-central-1
- me-central-1
- me-south-1
- mx-central-1
- sa-east-1
- us-east-2
- us-west-1
- us-west-2
5-day free trial, then from $0.03/hr software charge (larger instance sizes cost more) plus your own EC2 costs, billed by AWS.
Subscriptions are open to AWS India (AISPL) accounts. Outside India? Ask us for a private build.
- AzureAvailable
Microsoft Azure
Compute Gallery image · v4.5.14+ (Build 20260916)
Azure Compute Gallery image IDSelected for you when you create the VM from the Azure Marketplace listing.
- Released
- OS disk
- Premium_LRS · 30 GiB
VM sizes- Standard_D2as_v7
- Standard_D2as_v5
- Standard_B2ms
- Standard_D4as_v7
Regions50 regions· show all· hide
- eastus
- australiacentral
- australiaeast
- australiasoutheast
- austriaeast
- belgiumcentral
- brazilsouth
- canadacentral
- canadaeast
- centralindia
- centralus
- chilecentral
- denmarkeast
- eastasia
- eastus2
- francecentral
- germanywestcentral
- indiasouthcentral
- indonesiacentral
- israelcentral
- italynorth
- japaneast
- japanwest
- jioindiawest
- koreacentral
- koreasouth
- malaysiawest
- mexicocentral
- newzealandnorth
- northcentralus
- northeurope
- norwayeast
- polandcentral
- qatarcentral
- southafricanorth
- southcentralus
- southeastasia
- southindia
- spaincentral
- swedencentral
- switzerlandnorth
- uaenorth
- uksouth
- ukwest
- westcentralus
- westeurope
- westindia
- westus
- westus2
- westus3
Getting started on Amazon Web Services
From launch to signed in, step by step.
Subscribe on AWS Marketplace and launch in your region with TCP
22,80and8000open; wait two to three minutes.Open
http://<instance-public-ip>/, click Log in and enter usernameadminwith your EC2 Instance ID with a capital I as the password: an instance shown asi-0123456789abcdef0has the Moodle passwordI-0123456789abcdef0. Moodle's policy needs an uppercase letter.phpMyAdmin:
/phpmyadmin(usernameroot). Webmin: port8000(usernameadmin). These two accept the plain lowercase Instance ID.SSH as
ubuntuwith your key pair. Change passwords withsudo bash /home/ubuntu/iscripts/pass_moodle.sh,pass_mysql.shorpass_webmin.sh.Moodle data lives in
/var/www/moodledata. A stop/start or new Elastic IP is picked up within five minutes.
Security posture
What this AWS image does and does not ship with, one fact per line.
Clean-room build on Canonical's official Ubuntu 24.04 LTS image: every component comes from its own official repository or release, nothing is copied from any third-party image, and the finished image was scanned for third-party vendor strings before capture.
No usable credential ships in the image; passwords are set on your instance at first boot from EC2 instance metadata (IMDSv2) and the scripts that set them delete themselves afterwards.
SSH is key-only, root login over SSH is refused, and build-time SSH keys, shell history and logs were removed before imaging.
First boot sets the Moodle admin, MySQL root and Webmin passwords from the Instance ID, regenerates the phpMyAdmin cookie key and control-user password for this instance, then purges itself.
Moodle connects to MySQL as its own user rather than root, so changing the root password never takes the site down.
The Moodle data directory lives outside the web root; MySQL uses caching_sha2_password and listens locally.
Password validation is implemented so that passwords containing shell metacharacters are handled correctly.
The bundled password tools enforce at least 10 characters with upper- and lower-case letters, a number and a symbol, and verify the new credential with a real sign-in before reporting success.
The image is HTTP-only by design so it works at a bare IP with no certificate warnings: terminate TLS at a load balancer or add a certificate before exposing it publicly, and restrict port 22 and any admin ports to trusted IP ranges in your security group.
Getting started on Microsoft Azure
From launch to signed in, step by step.
Create the VM from the Azure Marketplace listing with TCP
22,80and8000open in your network security group. Chooseubuntuas the administrator username so SSH and the script paths match. Wait about four minutes for first boot.Open
http://<vm-public-ip>/and sign in asadmin. phpMyAdmin is at/phpmyadmin(usernameroot) and Webmin on port8000(usernameadminorroot).The password is
VM-followed by your VM ID - the prefix is required, because the application's own password policy needs an upper-case character and an Azure VM ID is an all-lower-case GUID. In the Azure portal open the virtual machine, choose Properties and copy VM ID, then type it asVM-02aab8a4-74ef-476e-8182-f6d2ba4166a6.Typing the VM ID without the
VM-prefix is the single most common reason a first login fails on this image - Moodle's password policy rejects it.SSH as
ubuntuwith your key. Change passwords withsudo bash ~/iscripts/pass_moodle.sh,pass_mysql.shorpass_webmin.sh.
Security posture
What this Azure image does and does not ship with, one fact per line.
Clean-room build on Canonical's official Ubuntu image from the Azure Marketplace: every component comes from its own official source and no third-party image was launched or copied.
The Moodle administrator, MySQL root and Webmin passwords are all set on first boot from your VM's own vmId, prefixed with `VM-` because Moodle's password policy requires an upper-case character.
The pre-image cleanup proves the build's own credentials are rejected before capture, and first boot sets every password from the new VM's own vmId, read from Azure IMDS.
The ubuntu login account ships password-locked with an empty authorized_keys, and cloud-init installs your own SSH key at deploy time.
Shell history, logs and cloud-init state are cleared before capture.
Verified against Microsoft's documented Linux certification test cases on a VM deployed from this gallery version - 13 passed, 0 failures - with VM extension provisioning confirmed and every helper script executed rather than only reviewed.
Restrict port 22 to trusted IP ranges, and put the consoles behind HTTPS with your own certificate before exposing them to the internet.