A project to build a Moodle server and Wi-Fi router on a Raspberry Pi 3
Clone or download
martignoni Merge pull request #99 from moodlebox/revert-95-php72
Revert "Patch for using PHP7.2"
Latest commit 4cfa5f1 Oct 18, 2018



GitHub release GitHub Release Date Github Downloads GitHub last commit Donate PayPal

A project to build a Moodle server and Wi-Fi router on a Raspberry Pi 3.

The MoodleBox Documentation

Visit the MoodleBox web site for more information about the MoodleBox features or any question about the usage of a MoodleBox.

Asking Support Questions

We have an active discussion forum where users and developers can ask questions. Please don't use the GitHub issue tracker to ask questions.

Building the MoodleBox disk image from scratch

If you just want to use a MoodleBox, you don't need to build the MoodleBox disk image yourself. Just download the MoodleBox image and follow the instructions on the MoodleBox web site.

To build a MoodleBox from scratch with this script, you need a Raspberri Pi 3 or 3B+ (Wi-Fi!).

  1. Clone Rasbpian Stretch Lite on your microSD card.
  2. Create a ssh file on the boot partition, e.g. using touch ssh.
  3. Insert the microSD card into your Raspberry
  4. Connect your Raspberry to your Ethernet network and boot it.
  5. Install Ansible on your computer.
  6. Clone this repository to your local drive.
  7. Create a keys directory in the repository folder and copy your public key into it, under the name id_rsa.pub.
  8. Get the IP address of your RaspberryPi and change it in the hosts.yml file. Do not change anything else, unless you know what you're doing. You're on your own.
  9. Run ansible-playbook moodlebox.yml from the repository folder.
  10. Wait 30–50 minutes, depending on your SD card and Internet bandwidth. You're done.

Overriding defaults

You can override any of the defaults configured in default.config.yml by creating a config.yml file and setting the overrides in that file. For example, you can change the MoodleBox main credentials and the timezone with something like:

moodlebox_username: 'myusername'
moodlebox_password: 'secret'
moodlebox_timezone: 'Australia/Perth'

Any variable can be overridden in config.yml; see the file default.config.yml for a list of available variables.


The code is available at https://github.com/moodlebox/moodlebox.

A prepared disk image of the latest released version is available for downloading, cloning on your microSD card and using out of the box on your Raspberry Pi 3.

Release notes

See Release notes.



Copyright © 2016 onwards, Nicolas Martignoni nicolas@martignoni.net

  • All the source code is licensed under GPL 3 or any later version.
  • The documentation is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.