Catalog / CMS, e-commerce & learning

Moodle

Learning management system for courses, assessments and online training

CIS Level 1 hardened Ubuntu 24.04 LTS image by Lynxroute · unique credentials at first boot · CVE-scanned · SBOM and CIS report inside

Availability and pricing
CloudVersionSoftware priceLast build
AWS Marketplace
EC2 AMI · all commercial regions
4.5.15$0.05/hr
Recommended instance: t3.large · 5-day free trial
2026-10-23Listing ↗
Azure Marketplace
VM image · plan payg-gen2 · Gen2
4.5.15$0.028/vCPU/hr
Recommended VM: Standard_D2s_v3
2026-10-26Listing ↗

Software price only; cloud infrastructure is billed separately by the provider. Prices in USD.

Image facts
Base OSUbuntu 24.04 LTS
HardeningCIS Level 1, Ubuntu 24.04 LTS (tailored)
LicenseGPL-3.0
UpstreamMoodle Pty Ltd
Machine-readableproduct.json · catalog.json
What is Moodle

Moodle is the world's most widely deployed open-source learning management system (LMS), implemented in PHP 8.3 and served by Nginx with PHP-FPM over MySQL 8.0. This image is powered by Moodle™. It delivers the full teaching and training workflow - courses and categories, enrolment, activities and resources, quizzes with a large question-type bank, assignments and rubric grading, the gradebook, forums and messaging, SCORM and H5P content, completion tracking, badges and certificates, calendar, and reporting - with role-based access control, cohorts, groups, multi-language support, a REST/web-services API, and an extensive plugin and theme ecosystem. It connects to any standard SMTP relay (Amazon SES, SendGrid, Postmark, Mailgun, or self-hosted Postfix) for notifications and supports SSO via OAuth2, SAML, and LDAP. This image ships the GPL-3.0 community edition and runs entirely on the EC2 instance you launch - no external account, subscription, license key, or activation handshake is required. All data stays inside your own AWS account. Moodle™ is a registered trademark of Moodle Pty Ltd; this product is community-built and not affiliated with or endorsed by Moodle Pty Ltd.

What the Lynxroute image adds

Security hardening:

  • Per-instance administrator password generated on first launch and written to /root/moodle-credentials.txt (mode 0600) - never baked into the image
  • The site is installed automatically on first launch via the Moodle command-line installer - no setup wizard is ever exposed on the public internet
  • The Moodle data directory (course files, user sessions, caches) is placed outside the web root on a dedicated path, with non-world-readable permissions, so content is never served as static files
  • MySQL 8.0 listens on 127.0.0.1 only; the database user password is generated per instance
  • PHP-FPM workers and MySQL InnoDB buffer pool auto-sized to the instance RAM at launch
  • The Moodle scheduled-task runner executes every minute as a managed system service - no manual cron setup
  • The site address is reconciled automatically at boot, so the LMS keeps serving after an instance stop/start changes the public IP
  • Self-signed TLS certificate generated during the image build - HTTPS on TCP 443 from launch, HTTP on TCP 80 redirects to HTTPS
  • Certbot and the Nginx plugin are pre-installed for one-command Let's Encrypt certificates
  • UFW firewall pre-configured - only TCP 22, 80, and 443 are exposed
  • fail2ban with default SSH jail; AppArmor with default Ubuntu profiles
  • CVE scan - every image is scanned for vulnerabilities before release

OS hardening (CIS Level 1):

  • CIS Ubuntu 24.04 LTS Level 1 benchmark applied via ansible-lockdown
  • auditd, SSH hardening, kernel hardening, IMDSv2 enforced

Compliance artifacts:

  • SBOM - CycloneDX 1.6 at /etc/lynxroute/sbom.json
  • CIS Conformance Report at /etc/lynxroute/cis-report.html
  • CIS Tailored Profile at /usr/share/doc/lynxroute/CIS_TAILORED_PROFILE.md
Deploy

Launch in one command

Credentials are generated at first boot and written to /root/moodle-credentials.txt.

# subscribe once on the AWS Marketplace listing, then:
aws ec2 run-instances \
  --image-id resolve:ssm:/aws/service/marketplace/prod-xir5pejp4vjlc/latest \
  --instance-type t3.large --key-name my-key --security-group-ids sg-xxxxxxxx
# accept the plan terms once, then:
az vm image terms accept --publisher lynxroute --offer moodle --plan payg-gen2
az vm create -g my-rg -n moodle --size Standard_D2s_v3 \
  --image lynxroute:moodle:payg-gen2:latest --admin-username azureuser --generate-ssh-keys
Release notes

Latest release

The most recent release with notes; the full release history is in product.json.

Moodle 4.5.15

AWS · 2026-10-23Azure · 2026-10-26
  • Moodle updated 4.5.14 -> 4.5.15 on the 4.5 LTS line. GPL-3.0 unchanged
  • Security: MSA-26-0044 (missing access checks on H5P content files) and a router stack-trace path disclosure fix (MDL-89137)
  • Security: ships the PHP2Shell fix (CVE-2026-109618, CVE-2026-109619; unauthenticated remote code execution in PHP) via Ubuntu php8.3 8.3.6-0ubuntu0.24.04.13 (USN-8948-1). Earlier images of this product carry the vulnerable PHP and should be replaced
  • Rebuilt on the latest CIS Level 1 hardened Ubuntu 24.04 LTS base, picking up every operating-system security update published since the previous build