Skip to content

moodlebox/moodlebox

Repository files navigation

MoodleBox

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

A Moodle server and Wi-Fi router on Raspberry Pi.

MoodleBox Documentation

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

If you just want to use a MoodleBox, just install it with Raspberry Pi Imager on your Raspberry Pi Zero 2 W, 3A, 3B, 3B+, 4B, 400 or 5 and use it out of the box. Follow the instructions on the MoodleBox web site.

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 install it with Raspberry Pi Imager on your Raspberry Pi Zero 2 W, 3A, 3B, 3B+, 4B, 400 or 5 and use it out of the box. Follow the instructions on the MoodleBox web site.

To build a MoodleBox from scratch with this script, you need a Raspberry Pi 3B, 3B+, 4B or 5.

  1. Clone Raspberry Pi OS (64-bit) Lite image on your microSD card using Raspberry Pi Imager.
  2. During the Customization step, set your hostname, your localization, a username (e.g. moodlebox) and a password (e.g. MoodleBox4$); enable SSH and tick the radio button Use password authentication.
  3. When finished, eject the microSD card and insert it into your Raspberry Pi.
  4. Connect your Raspberry Pi to your Ethernet network and boot it.
  5. Install Ansible on your computer. On macOS, use e.g. brew install ansible.
  6. Install sshpass to enable passing SSH password to the Raspberry Pi. On macOS, use e.g. brew tap esolitos/ipa; brew install sshpass.
  7. Clone this repository to your local drive.
  8. Create a keys directory in the repository folder and copy your public key into it, under the name id_rsa.pub.
  9. Get the IP address of your Raspberry Pi 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.
  10. Run ansible-playbook moodlebox.yml -K from the repository folder and enter the user password you gave in when cloning your microSD card.
  11. Wait 15–50 minutes, depending on your Raspberry Pi model, SD card speed 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.

Availability

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

Release notes

See Release notes.

Sponsor

MoodleBox is sponsored by E-learning Touch' Moodle Partner.

Thanks

License

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

All contributions to this repository are licensed under AGPLv3 or any later version.

MoodleBox doesn't require a CLA (Contributor License Agreement). The copyright belongs to all the individual contributors. Therefore we recommend that every contributor adds following line to the header of a file, if they changed it substantially:

@copyright Copyright © <year>, <your name> (<your email address>)