Derek Coleman & Associates Inc logoDerek Coleman & Associates Inc

Home / Support / Moodle on Ubuntu 24.04 LTS

Moodle on Ubuntu 24.04 LTS — Support & Quick Start

Moodle on Ubuntu 24.04 LTS — Moodle is the world's most widely used open-source learning management system for online courses, assessments, and training. Published by Derek Coleman & Associates Inc on the Azure Marketplace, deployed in your own Azure subscription.

Fixed on image version 2026.930.2153 (published 2026-10-01)

The current image ships a complete site: Moodle 4.5.14 (4.5 LTS) is served over HTTPS on 443 with a self-signed certificate generated on your VM at first boot, port 80 answers with a 301 redirect to it, $CFG->wwwroot is https://<VM-IP>, and moodle-cron.timer runs Moodle's scheduled tasks every minute. First boot runs the scheduled tasks once and proves the admin sign-in against the running site before it writes /var/moodledata/admin-password (image-verify on this exact version: admin sign-in, scheduled-task run and HTTPS listener all proven).

If you deployed this VM before 2026-10-01, it came from the older image and is not changed by the new publication — redeploy from the current Marketplace version, or apply the one-time repair below:

  1. VMs deployed from image 2026.916.1326 (live 2026-09-17 to 2026-10-01) have a working site and admin sign-in, but no scheduled-task runner and nothing listening on 443. Add Moodle's documented cron line for www-data (command below); the Site administration > Notifications warning clears after the first run. For HTTPS, put a certificate on Apache yourself (self-signed, or Let's Encrypt via certbot) and change $CFG->wwwroot in /var/www/moodle/config.php to the https:// address — Moodle builds every link from wwwroot.
  2. VMs deployed from images older than 2026.916.1326: the installer never ran, so there is no site, no admin user and no credential file. There is nothing on that VM to repair short of running Moodle's web installer yourself at http://<VM-IP>/ (it is unclaimed, so the first visitor becomes the admin — keep the NSG scoped to your own IP until you have). Redeploying from the current Marketplace version is the supported path.
  3. Images built before 2026-09-30 run Moodle 4.5.1, which carries 14 high-severity advisories fixed from 4.5.9. Check with `sudo -u www-data php /var/www/moodle/admin/cli/cfg.php --name=release`, then upgrade in place following Moodle's Upgrading guide (docs.moodle.org/405/en/Upgrading) or redeploy.
( sudo crontab -l -u www-data 2>/dev/null; echo '* * * * * /usr/bin/php /var/www/moodle/admin/cli/cron.php >/dev/null 2>&1' ) | sudo crontab -u www-data -

Image change: see the pull request.

Source: the Marketplace live version set for this offer, read from Partner Center on 2026-10-01. New deployments take the newest version by default.

At a glance

Application ports443 (HTTPS, with a self-signed certificate generated on your VM at first boot); 80 answers with a 301 redirect to 443
Open in browserhttps://<VM-IP>/login/index.php
Admin credential filesudo cat /var/moodledata/admin-password
Sign in asadmin
Service(s)apache2, postgresql, moodle-cron.timer (runs Moodle's scheduled tasks every minute: `systemctl list-timers moodle-cron.timer`)
Configuration/var/www/moodle/config.php ($CFG->wwwroot is set to https://<VM-IP> at first boot); data in /var/moodledata/; TLS certificate and key /etc/ssl/moodle/moodle.crt and moodle.key
Logs/var/log/apache2/moodle_ssl_error.log (443); /var/log/apache2/moodle_error.log (80)
VersionMoodle 4.5.14 (4.5 LTS; Apache 2.4, PHP 8.3, PostgreSQL)
PlatformUbuntu 24.04 LTS

Quick start

  1. Deploy from the Azure Marketplace (Get It Now → Create), choosing your SSH key at the Administration step.
  2. Allow inbound SSH (22) for yourself plus the application port(s): 443 (HTTPS) and 80 (redirects to 443) — restrict to your own IP where possible. The in-image firewall already allows them; only the Network Security Group (NSG) keeps them closed.
  3. Open https://<VM-IP>/login/index.php and sign in as admin (see First login below).
  4. For your own domain, set $CFG->wwwroot in /var/www/moodle/config.php, replace /etc/ssl/moodle/moodle.crt and moodle.key with a CA-issued pair, then `sudo systemctl reload apache2`.

First login / credentials

This image generates its admin credential on the VM at first boot — nothing is pre-set. SSH into the VM with the username + key you chose at deploy, then print the generated credential:

ssh <your-username>@<VM-IP>
sudo cat /var/moodledata/admin-password

Sign in as admin.

  1. Print the credential file: MOODLE_ADMIN_USER=admin and MOODLE_ADMIN_PASSWORD (the database credentials are in the same file).
  2. Open https://<VM-IP>/login/index.php (http:// redirects there; the browser warns once about the self-signed certificate) and sign in as admin.
  3. Change the password (Preferences → Change password) and delete the file. Self-registration is disabled by default.

Sign in as admin (unless noted), then change the password immediately. The file is root-only and can be deleted once the password is stored securely.

Still stuck?

Email support@dcassociatesgroup.com (response within 1 business day) or send a message via the contact form. Include the offer name, VM size, region, and any log output — sudo journalctl -u <service> -n 100 usually tells the story.