Guides
Practical guides on Moodle and Totara — from server setup and SSO to plugin development and integrations.
Practical guides from our team
We work with Moodle and Totara every day. These guides distil what we know — from first-time setup to advanced configuration — so you can move faster and with more confidence.
A Practical Moodle Troubleshooting Workflow
A practical workflow for isolating and fixing Moodle issues across application code, cron, plugins, caching, web server configuration, and infrastructure.
Allowing Moodle cURL Requests to Localhost in Development
This guide explains how to allow Moodle’s cURL layer to reach localhost in a development environment without weakening production HTTP security.
Checklist for Starting a New Moodle or Totara Plugin
A practical pre-build checklist for starting a Moodle or Totara plugin with the right access model, data lifecycle rules, event handling, backup scope, and documentation.
Designing a High-Availability Moodle Deployment on AWS
Design a practical high-availability AWS architecture for Moodle with a private multi-AZ database, shared file storage, Redis, an ALB, and a stable cron node.
How to Configure GraphQL in Totara
Set up a dedicated Totara GraphQL user and API client, validate token-based access, and use schema introspection to build reliable queries.
How to Configure LTI 1.3 Between Two Moodle Sites
This guide shows the full Moodle-to-Moodle LTI 1.3 setup using Moodle A as the Tool and Moodle B as the Platform, covering registration, launch validation, user provisioning, and troubleshooting.
How to Migrate Moodle to a New Server and Domain
Migrate Moodle to a new server and domain without losing data, breaking URLs, or missing the config, cron, and DNS dependencies that matter in cutover.
How to Prepare a New VPS for Moodle or Totara
Prepare a self-hosted VPS for Moodle or Totara by making the right early decisions on database defaults, security updates, PHP execution, locales, and Apache hardening.
How to Restore a Moodle Site from Hosting Backups
Restore a Moodle site from hosting-provider backups by recovering files, database state, and config dependencies in the right order.
How to Set Up Automated HR Imports in Totara
Automate HR imports in Totara so users, organisational structure, and profile data stay in sync without manual admin effort.
How to Set Up OAuth2 SSO for Moodle or Totara
Configure OAuth2-based single sign-on for Moodle or Totara, including provider setup, attribute mapping, and staged testing before go-live.
How to Set Up SAML2 SSO for Moodle or Totara
Set up SAML2-based single sign-on for Moodle or Totara by exchanging metadata, mapping identity claims, testing with real accounts, and promoting safely to production.
How to Upgrade Moodle Safely on a Self-Hosted Server
This guide walks through a production-safe Moodle upgrade, including major-versus-minor planning, platform checks, plugin inventory, test upgrades, live cutover, cron updates, and rollback preparation.
Install Moodle on a VPS with Virtualmin/Webmin or the Command Line
Install a Moodle site on a VPS with DNS, Virtualmin or Webmin setup, Git deployment, config.php, cron, backups, monitoring, and command-line alternatives.
LDAP Authentication vs SSO in Moodle and Totara
Understand why Moodle and Totara LDAP authentication is not the same as single sign-on, and choose the right integration model for AD or Entra environments.
Moodle Backup and Restore API for Developers
A developer-focused guide to Moodle backup and restore automation, including controller lifecycle, temp directories, and common restore pitfalls.
Running Legacy Moodle or Totara PHPUnit Tests on PHP 7.4
Run legacy Moodle or Totara PHPUnit suites on PHP 7.4 by aligning the older toolchain, dependencies, and test bootstrap expectations.
Testing Moodle Plugins That Send Data to Remote Endpoints
A practical testing guide for Moodle plugins that transmit data to remote endpoints, including fixtures, interception, and repeatable validation.
Use Mailgun with Moodle for Outbound Email
Route Moodle email through Mailgun with the DNS records, SMTP settings, test commands, and validation steps needed for reliable delivery.
Using esbuild for Moodle Plugin AMD Modules
Use esbuild to modernise AMD module workflows in a Moodle plugin while staying compatible with Moodle’s runtime expectations.
Using PsySH for Faster Moodle Development
Use PsySH to inspect Moodle state faster during development and debugging, without rewriting ad hoc test code for every question.
What to Monitor on a Moodle Server
A practical guide to monitoring a Moodle server, with attention to uptime, cron, queues, disk, database, email, and application-level warning signs.
Writing AMD Modules in Moodle
Write, register, and build Moodle AMD modules correctly so front-end behaviour stays maintainable and predictable across environments.
Working on a Moodle or Totara project?
Get in touch