Moodle — Custom Plugins & Container Stack
The Problem
An enterprise education client running Moodle at scale needed more than the marketplace plugin ecosystem could give them: token cleanup for Azure OIDC sessions, group and cohort sync against external identity systems, audited course-completion sync into a downstream vault, safe ad-hoc SQL reporting for admins, custom dashboard blocks, and a container image that exposed nginx metrics for Prometheus. They also needed the whole stack reproducible across environments.
The Solution
Five custom Moodle plugins totaling 78+ PHP files. local_automationservices exposes a web service API and integrates with external orchestration. local_bethel handles cohort/group sync, transcript display, user-merge utilities, and OIDC token cleanup across four custom DB tables. local_mesh syncs course completions into a vault with an audit ledger. local_sqlreport runs a curated set of safe SELECT queries with date filtering, sorting, and CSV export. block_hubts is a custom dashboard block. The container side: a 258-line multi-stage Dockerfile that compiles nginx from source with the VTS module for Prometheus metrics, a docker-compose.yml orchestrating MySQL 8 and Redis with feature-flag environment variables, and a Lambda theme with custom fonts and assets.
Tech Stack
Results
Have a project like this?
Tell me about your project →