Listing Thumbnail

    Moodle - Hardened Self-Hosted LMS Platform

     Info
    Sold by: Lynxroute 
    Deployed on AWS
    Free Trial
    This product has charges associated with it for hardening, security configuration, and support. Moodle is the world's most widely deployed self-hosted learning management system (LMS), delivered here as a PHP 8.3 + MySQL 8.0 + Nginx stack - courses, quizzes, assignments, grading, forums, SCORM, and a full plugin ecosystem. This AMI is powered by Moodle™ and ships the open-source GPL-3.0 edition, fully functional out of the box - no external account, subscription, or license key required. This Lynxroute build is hardened and ready immediately: per-instance admin password generated on first launch, the site installed automatically (no setup wizard exposed), self-signed TLS on TCP 443, the Moodle data directory placed outside the web root, MySQL bound to 127.0.0.1, UFW firewall pre-configured, on a CIS Level 1 hardened Ubuntu 24.04 LTS base. GPL-3.0 license - fully auditable, no vendor lock-in.

    Overview

    This is a repackaged software product wherein additional charges apply for hardening, security configuration, and support.

    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 AMI 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 AMI 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 THIS AMI ADDS

    Security hardening:

    • Per-instance administrator password generated on first launch and written to /root/moodle-credentials.txt (mode 0600) - never baked into the AMI
    • 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 AMI 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

    Highlights

    • Moodle security baked in: per-instance admin password generated on first launch, the site installed automatically with no setup wizard exposed on the public internet, self-signed TLS on TCP 443 with HTTP-to-HTTPS redirect, the Moodle data directory placed outside the web root, and MySQL bound to 127.0.0.1 only.
    • CIS Level 1 hardened Ubuntu 24.04 LTS: auditd, fail2ban, AppArmor, SSH key-only, IMDSv2 enforced. CVE-scanned before every release. SBOM (CycloneDX) and CIS Conformance Report included.
    • A complete self-hosted learning platform powered by Moodle™: courses, quizzes, assignments, gradebook, SCORM and H5P, forums, badges, REST API, plus a vast plugin and theme ecosystem. GPL-3.0 edition - the AMI is fully functional out of the box, no external account or license key required.

    Details

    Delivery method

    Delivery option
    64-bit (x86) Amazon Machine Image (AMI)

    Latest version

    Operating system
    Ubuntu 24.04

    Deployed on AWS
    New

    Introducing multi-product solutions

    You can now purchase comprehensive solutions tailored to use cases and industries.

    Multi-product solutions

    Features and programs

    Financing for AWS Marketplace purchases

    AWS Marketplace now accepts line of credit payments through the PNC Vendor Finance program. This program is available to select AWS customers in the US, excluding NV, NC, ND, TN, & VT.
    Financing for AWS Marketplace purchases

    Pricing

    Free trial

    Try this product free for 5 days according to the free trial terms set by the vendor. Usage-based pricing is in effect for usage beyond the free trial terms. Your free trial gets automatically converted to a paid subscription when the trial ends, but may be canceled any time before that.

    Moodle - Hardened Self-Hosted LMS Platform

     Info
    Pricing is based on actual usage, with charges varying according to how much you consume. Subscriptions have no end date and may be canceled any time.
    Additional AWS infrastructure costs may apply. Use the AWS Pricing Calculator  to estimate your infrastructure costs.

    Usage costs (4)

     Info
    Dimension
    Cost/hour
    t3.large
    Recommended
    $0.03
    t3.medium
    $0.02
    m6i.xlarge
    $0.05
    m6i.large
    $0.03

    Vendor refund policy

    We do not offer refunds for this product. AWS infrastructure charges (EC2, EBS, data transfer) are billed separately by AWS and are not refundable by us.

    How can we make this page better?

    Tell us how we can improve this page, or report an issue with this product.
    Tell us how we can improve this page, or report an issue with this product.

    Legal

    Vendor terms and conditions

    Upon subscribing to this product, you must acknowledge and agree to the terms and conditions outlined in the vendor's End User License Agreement (EULA) .

    Content disclaimer

    Vendors are responsible for their product descriptions and other product content. AWS does not warrant that vendors' product descriptions or other product content are accurate, complete, reliable, current, or error-free.

    Usage information

     Info

    Delivery details

    64-bit (x86) Amazon Machine Image (AMI)

    Amazon Machine Image (AMI)

    An AMI is a virtual image that provides the information required to launch an instance. Amazon EC2 (Elastic Compute Cloud) instances are virtual servers on which you can run your applications and workloads, offering varying combinations of CPU, memory, storage, and networking resources. You can launch as many instances from as many different AMIs as you need.

    Version release notes

    Moodle 4.5.10 - Initial release (June 2026)

    • Moodle 4.5.10 LTS on Ubuntu 24.04 LTS
    • CIS Level 1 hardening applied (ansible-lockdown/UBUNTU24-CIS)
    • CVE-scanned before every release
    • Per-instance Moodle administrator password generated on first launch
    • The site is installed automatically on first launch - no setup wizard exposed
    • The Moodle data directory is placed outside the web root with non-world-readable permissions
    • MySQL 8.0 listening on 127.0.0.1 only, with per-instance database password
    • PHP-FPM workers and MySQL InnoDB buffer pool auto-sized to instance RAM at launch
    • The scheduled-task runner executes every minute as a managed system service
    • The site address is reconciled automatically at boot (survives instance stop/start IP changes)
    • Self-signed TLS certificate generated during the AMI build; HTTP on TCP 80 redirects to HTTPS on TCP 443; Certbot pre-installed
    • UFW firewall pre-configured (TCP 22, 80, and 443 only)
    • fail2ban, auditd, AppArmor pre-configured
    • SBOM (CycloneDX 1.6) at /etc/lynxroute/sbom.json
    • CIS Conformance Report (OpenSCAP) at /etc/lynxroute/cis-report.html
    • IMDSv2 enforced

    Additional details

    Usage instructions

    1. Launch instance (t3.large recommended)
    2. Open Security Group - allow TCP 443 (and TCP 80 for the HTTP-to-HTTPS redirect / Let's Encrypt) from your IP first; open to 0.0.0.0/0 after you have logged in and changed the admin password (anyone reaching the URL before you can also log in with the generated password)
    3. SSH: ssh -i key.pem ubuntu@<PUBLIC_IP>
    4. Wait on first launch - the URL shows a "Starting up" splash for about 2-5 minutes while the database schema is built and the administrator account is created. This first-boot provisioning runs once; later boots are fast.
    5. Read credentials: sudo cat /root/moodle-credentials.txt
    6. Open https://<PUBLIC_IP>/ in your browser - accept the self-signed certificate warning
    7. Log in as admin with the password from the credentials file
    8. Change the admin password and set a real administrator email (User menu -> Preferences -> Edit profile), then create your courses and users

    Credentials are saved to /root/moodle-credentials.txt at first launch. The Moodle scheduled-task runner executes every minute as a managed system service - no crontab setup needed. The site address (wwwroot) is set to the instance public IP at first launch and reconciled automatically on later boots; if you attach a domain, point it at the instance and run Certbot (below) to update the site to HTTPS on that domain. Replace the self-signed TLS certificate with a CA-signed certificate for production use. TCP 80 and 443 are already open in the firewall for the Let's Encrypt HTTP-01 challenge: sudo certbot --nginx -d your.domain.com

    Resources

    Vendor resources

    Support

    Vendor support

    Visit u online: https://lynxroute.com/#contact .

    Moodle™ is a registered trademark of Moodle Pty Ltd. This product is community-built and is not affiliated with or endorsed by Moodle Pty Ltd.

    Additional resources (informational only): Moodle documentation:

    AWS infrastructure support

    AWS Support is a one-on-one, fast-response support channel that is staffed 24x7x365 with experienced and technical support engineers. The service helps customers of all sizes and technical abilities to successfully utilize the products and features provided by Amazon Web Services.

    Similar products

    Customer reviews

    Ratings and reviews

     Info
    0 ratings
    5 star
    4 star
    3 star
    2 star
    1 star
    0%
    0%
    0%
    0%
    0%
    0 reviews
    No customer reviews yet
    Be the first to review this product . We've partnered with PeerSpot to gather customer feedback. You can share your experience by writing or recording a review, or scheduling a call with a PeerSpot analyst.