Git Product home page Git Product logo

moodlebox's Introduction

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.
  2. Create a ssh.txt file on the bootfs partition with any content.
  3. Create a userconf.txt file on the bootfs partition, and add the following line to it: moodlebox:$6$rmLgDblolU16oLmc$i7QzARV8o84tCDQA/Kq1xU3eYwPWlocqVmpFTcSWqAqiWJpFyTLd.g9W5ktDDh16rq5lwYG9wpHY224m5nHLk0
  4. Insert the microSD card into your Raspberry Pi.
  5. Connect your Raspberry Pi to your Ethernet network and boot it.
  6. Install Ansible on your computer. On macOS, use e.g. brew install ansible.
  7. Install sshpass to enable passing SSH password to the Raspberry Pi. On macOS, use e.g. brew tap esolitos/ipa; brew install sshpass.
  8. Clone this repository to your local drive.
  9. Create a keys directory in the repository folder and copy your public key into it, under the name id_rsa.pub.
  10. 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.
  11. Run ansible-playbook moodlebox.yml from the repository folder.
  12. 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.

E-learning Touch'

Thanks

License

Copyright © 2016 onwards, Nicolas Martignoni [email protected].

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>)

moodlebox's People

Contributors

martignoni avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

moodlebox's Issues

Support HTTPS

MoodleBox is now http only. Find a way to enable https.

Add option to build an localized version

Add option to build an english or french version and to change the timezone, e.g. by asking interactively at the beginning of the script or by setting manually environments variables.

TODO:

  • Refactor script to enable changing of default settings via variable definitions
  • Script should write a config file with its variable definitions, to be used in later stages
  • Change script to ask interactively for other settings

Add page to documentation explaining the backup course restrictions

It's impossible to restore big courses (see #18), now bigger than ~100-120MB, because of the temp directory is stored in RAM.

A new doc page should explain this, and maybe give some instructions on how to workaround this, even temporarily. E.g.

  • Reboot the MoodleBox (to be sure the RAM is as empty as possible)
  • Connect to the MoodleBox via SSH
  • Edit file ‘/etc/fstab', e.g. with command sudo nano /etc/fstab
  • Change the 128M (or 64M) on the line with '/var/www/moodledata/temp’ to 256M. Make sure you don’t touch anything otherwise, or your SD card won’t boot anymore.
  • Save (ctrl-X, ctrl-Y)
  • Reboot the MoodleBox and enjoy the new setting, which should be OK for courses backup up to 200 MB

Integrate MathJax locally

Install the MathJax library locally, to enable its use when the MoodleBox isn't connected to the Internet.

Upgrade to PHP7

Upgrade from PHP5 to PHP7 for substantial performance improvement.

Élargir la plage d'IP servie par le DHCP

Actuellement la plage d'IP servie par le DHCP est assez restreinte or dans le cas d'une utilisation en milieu scolaire avec un grand nombre de classe, elle peut-être insuffisante.
Exemple perso : 5 classes de 30 élèves, même si je n'ai pas toutes les classes la même journée, la moodlebox sert des IP aux portables allumés dans les salles voisines et les derniers portables ne se connectent plus.
J'ai modifié le réglage du DNSmasq.conf pour couvrir la plage 10.0.0.10 à 10.0.0.250 et ça semble OK.

Offrir la possibilité de régler ça par GUI ne me semble pas nécessaire mais modifier le réglage par défaut pourrait être utile (et/ou raccourcir la durée du bail ?)

Merci
Christian

caractères incorrects dans la page d'authentification

Lors de la première connexion, la page d'authentification comporte des caractères incohérents dans le champ "nom d'utilisateur"
En utilisant la case "se souvenir etc" le problème ne se pose plus par la suite.

screenshot_2017-08-23-22-46-36

(à classer dans les pas grave mais pas bô)

Moodlebox Prepared disk image - login issues

Hi

I have just downloaded and installed Moodlebox version 1.9.5 on my RPi.
I tested in on both RPi 3 and RPi 2.

I launch and I can view http://moodlebox.home from another machine connected to Access Point MoodleBox.

I am unable to login with credentials: u: admin, p: MoodleboxR56.
The same goes for http://moodlebox.home/phpmyadmin; the credentials you supply on your site- u: moodlebox, p: MoodleboxR56 does not work.

Error mesage I get on moodle.home is "Invalid login, please try again" and
phpadmin is " #1045 - Access denied for user 'moodlebox'@'localhost' (using password: YES)"

Can you please help?

Detailed documentation (LaTeX document) not up-to-date.

The LaTeX documentation (in French) is not up-to-date. Moreover, it's difficult to maintain and time consuming.

Maybe will I delete it, as it's not central for the project and so that I can better focus on more important issue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.