Blueprint examples¶
A gallery of ready-to-use blueprints. Click Open to launch one in the hosted playground, or open the source on GitHub to copy and adapt it.
New to blueprints? Start with the Overview. For every step type and field, see the Reference.
| Example | What it provisions | Key steps | Launch |
|---|---|---|---|
| minimal | Bare install, admin login, dashboard landing | installMoodle, login |
Open |
| course-with-content | One course with a label and an assignment | createCategory, createCourse, addModule |
Open |
| multi-user | Teacher + two students enrolled by role | createUsers, enrolUsers |
Open |
| classroom-ready | 1 teacher + 3 students, 4-section course, mixed content | createUsers, createCourse, enrolUsers, addModule |
Open |
| plugin-showcase | Installs mod_board (Kanban) + demo course |
installMoodlePlugin, createCourse, addModule |
Open |
| plugin-exeweb | Installs eXeLearning mod_exeweb + demo course |
installMoodlePlugin, createCourse, addModule |
Open |
| roles-scales-cohorts | XML role import, JSON role, scales, a cohort with members | importRoles, createRole, createScale, createCohort |
Open |
| visual-theme-moove | Installs and activates the Moove theme | installTheme, setTheme, createCourse |
Open |
| docker-compatible | Portable subset that also runs in alpine-moodle | setConfig, createCourse, createUser, enrolUser |
Open |
| pr-overlay | Moodle core PR preview via runtime file overlay | applyPrOverlay, login |
Open |
| tracker-starter | Generic tracker issue reproduction site: course, teacher + student, forum/assignment/quiz/page | createCourse, createUsers, enrolUsers, addModule |
Open |
Tip
Loading a different blueprint in the same tab starts fresh. Reloading the same blueprint keeps your data for that tab session. See Overview for the persistence model.
Copy-paste examples¶
These are reproduced verbatim from the files linked above. Paste any of them into
the Blueprint panel, or save as .json and load with ?blueprint-url=.
minimal¶
The smallest useful blueprint: install Moodle, log in as admin, land on the dashboard.
{
"$schema": "../blueprint-schema.json",
"landingPage": "/my/",
"steps": [
{
"step": "installMoodle",
"options": {
"adminUser": "admin",
"adminPass": "password",
"adminEmail": "admin@example.com",
"siteName": "My Moodle"
}
},
{
"step": "login",
"username": "admin"
}
]
}
course-with-content¶
One category, one course, a welcome label and an assignment. Note the {{KEY}}
constants reused across steps.
{
"$schema": "../blueprint-schema.json",
"landingPage": "/my/",
"constants": {
"ADMIN_USER": "admin",
"ADMIN_PASS": "password",
"ADMIN_EMAIL": "admin@example.com"
},
"steps": [
{
"step": "installMoodle",
"options": {
"adminUser": "{{ADMIN_USER}}",
"adminPass": "{{ADMIN_PASS}}",
"adminEmail": "{{ADMIN_EMAIL}}",
"siteName": "Course Demo"
}
},
{
"step": "login",
"username": "{{ADMIN_USER}}"
},
{
"step": "createCategory",
"name": "Science"
},
{
"step": "createCourse",
"fullname": "Introduction to Physics",
"shortname": "PHYS101",
"category": "Science",
"summary": "A starter course covering basic physics concepts."
},
{
"step": "addModule",
"module": "label",
"course": "PHYS101",
"section": 1,
"name": "Welcome",
"intro": "<h3>Welcome to Physics 101!</h3><p>This course covers the fundamentals of physics.</p>"
},
{
"step": "addModule",
"module": "assign",
"course": "PHYS101",
"section": 1,
"name": "First Assignment",
"intro": "Submit a short essay on Newton's laws of motion."
},
{
"step": "setLandingPage",
"path": "/my/"
}
]
}
plugin-showcase¶
Installs a third-party plugin from a GitHub archive ZIP and adds a demo course.
{
"$schema": "../blueprint-schema.json",
"landingPage": "/my/",
"preferredVersions": { "php": "8.3", "moodle": "5.0" },
"constants": {
"ADMIN_USER": "admin",
"ADMIN_PASS": "password",
"ADMIN_EMAIL": "admin@example.com"
},
"steps": [
{
"step": "installMoodle",
"options": {
"adminUser": "{{ADMIN_USER}}",
"adminPass": "{{ADMIN_PASS}}",
"adminEmail": "{{ADMIN_EMAIL}}",
"siteName": "Plugin Showcase"
}
},
{
"step": "login",
"username": "{{ADMIN_USER}}"
},
{
"step": "installMoodlePlugin",
"url": "https://github.com/bynfrancesco/moodle-mod_board/archive/refs/heads/main.zip",
"pluginType": "mod",
"pluginName": "board"
},
{
"step": "createCourse",
"fullname": "Plugin Showcase Course",
"shortname": "PLUGINS",
"summary": "A course that demonstrates third-party Moodle plugins."
},
{
"step": "addModule",
"module": "label",
"course": "PLUGINS",
"section": 1,
"name": "Board Plugin",
"intro": "<h3>Board Activity</h3><p>The Board plugin provides a Kanban-style collaborative board within Moodle courses.</p>"
},
{
"step": "setLandingPage",
"path": "/my/"
}
]
}
Note
Plugin and theme downloads fetch a GitHub archive ZIP at boot. In Firefox and
Safari this may need a CORS proxy; Chromium works best. See the
Reference for installMoodlePlugin and installTheme.
Next steps¶
- Blueprints overview — what a blueprint is and how to load one
- Blueprint reference — all step types, fields, constants, and resources