Skip to content
Moodle LMS product logo
  • AWS· soonComing soon on Amazon Web Services
  • Azure· nextMicrosoft Azure is next on the roadmap
  • GCP· nextGoogle Cloud is next on the roadmap
Coming soon

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
Community

What's installed

Every package and version on the image. 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

Licensing Open source (GPL-3.0), no licence key required

Deploy anywhere

Moodle LMS on AWS.

Microsoft Azure and Google Cloud are 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.

  1. AWS

    Amazon Web Services

    AMI · v4.5

    Coming soon

    AWS AMI ID

    ami-004a3731b8cfef634
    Released
    September 4, 2026
    Root volume
    gp3 · 20 GiB

    Instance types

    • t3a.medium
    • t3.medium
    • t3a.large
    • m6a.large

    Regions

    • us-east-1

Getting started

From launch to signed in, step by step.

  1. Launch in us-east-1 with TCP 22, 80 and 8000 open; wait two to three minutes.

  2. Open http://<instance-public-ip>/, click Log in and enter username admin with your EC2 Instance ID with a capital I as the password: an instance shown as i-0123456789abcdef0 has the Moodle password I-0123456789abcdef0. Moodle's policy needs an uppercase letter.

  3. phpMyAdmin: /phpmyadmin (username root). Webmin: port 8000 (username admin). These two accept the plain lowercase Instance ID.

  4. SSH as ubuntu with your key pair. Change passwords with sudo bash /home/ubuntu/iscripts/pass_moodle.sh, pass_mysql.sh or pass_webmin.sh.

  5. Moodle data lives in /var/www/moodledata. A stop/start or new Elastic IP is picked up within five minutes.

Security posture

What this 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.