CL Complete LMS

LMS stories from the trenches.

Real incidents, upgrade post-mortems, performance fixes. Written by engineers who run LMS platforms every day.

Mobile app Moodle

The Moodle™ mobile app: how to install it, and the site setting that has to be on

The Moodle™ mobile app for iOS and Android — where to install it, the three site-admin switches your Moodle™ needs before the app can log in, and the feature toggles (notifications, QR-code sign-in, SSO) worth turning on.

7 min read
Cohorts CSV upload

Bulk-adding 400 existing students to a new Moodle™ cohort: the follow-up cookbook

Adding existing Moodle™ users to a cohort in bulk — the CSV pattern (same form, different upload type), the email-list pitfall, removing users from cohorts (where the bulk upload can't help), and the year-rollover trick. Three downloadable templates.

7 min read
Cohorts CSV upload

Onboarding 800 students in twenty minutes: the bulk Moodle™ user-upload cookbook

Bulk-uploading users into Moodle™ via CSV — students, teachers, supervising teachers, system managers — plus the cohort trick that makes the next semester rollover painless. Four downloadable CSV templates to start from.

9 min read
Hosting Moodle

Why your Moodle pages feel slow: a working triage list

Database, OPcache, cron, geography, that one auto-linking glossary — the ten places we actually look when a Moodle™ admin emails to say "everything feels sluggish". With the order we check them.

10 min read
Moodle PDF annotation

The PDF annotation rabbit hole: fonts, Ghostscript, and a disk that wouldn't stop growing

Boxes instead of letters in graded PDFs, Ghostscript vs Poppler arguments at 4pm on a Friday, and a moodledata partition that doubled in size without anyone uploading anything new. Here's the trail we followed.

8 min read
Backup Disaster recovery

Why your Moodle™ backup is probably broken (and how to find out)

Most Moodle™ sites have backups that have never been restored. Here's how to test yours in 45 minutes — and the five most common ways we see them silently failing.

9 min read
Incident response Real use case

The 2 AM call: recovering a corrupted Moodle™ during exam week

A real incident, anonymised. A vocational college's Moodle™ went down on a Tuesday night with a corrupted MariaDB. Final exams started 32 hours later. Here's what we did, in the order we did it.

11 min read
Maintenance Upgrades

The LMS upgrade pre-flight checklist

What can go wrong during an LMS upgrade, why multi-location backups matter before you commit, and the short, ordered checklist we run before any major version jump — on Moodle™ or any other LMS.

8 min read