{"id":13499909,"url":"https://github.com/moodlebox/moodlebox","last_synced_at":"2025-04-05T13:07:01.827Z","repository":{"id":46183526,"uuid":"65093083","full_name":"moodlebox/moodlebox","owner":"moodlebox","description":"A Moodle server and Wi-Fi router on Raspberry Pi Zero 2w, 3, 4 and 5","archived":false,"fork":false,"pushed_at":"2025-03-23T11:07:02.000Z","size":9326,"stargazers_count":126,"open_issues_count":7,"forks_count":29,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-03-29T12:09:00.148Z","etag":null,"topics":["access-point","moodle","moodle-server","moodlebox","offline","raspberry","raspberry-pi","raspberry-pi-3","raspberry-pi-4","raspberry-pi-5","raspberry-pi-zero-2-w","raspberrypi","rpi3","rpi4","rpi5","wi-fi","wi-fi-router","wifi","wifi-hotspot"],"latest_commit_sha":null,"homepage":"https://moodlebox.net/","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moodlebox.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":".github/support.yml","governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"moodlebox","custom":["https://moodlebox.net/give/","https://www.paypal.me/moodlebox/50"]}},"created_at":"2016-08-06T17:05:30.000Z","updated_at":"2025-03-23T11:07:04.000Z","dependencies_parsed_at":"2024-01-16T10:36:43.485Z","dependency_job_id":"d7e41857-a319-473d-af51-aac072cb306d","html_url":"https://github.com/moodlebox/moodlebox","commit_stats":{"total_commits":935,"total_committers":2,"mean_commits":467.5,"dds":0.04598930481283425,"last_synced_commit":"461a1e3620ae0ace86962fb1a3f4507b887ad95a"},"previous_names":[],"tags_count":67,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moodlebox%2Fmoodlebox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moodlebox%2Fmoodlebox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moodlebox%2Fmoodlebox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moodlebox%2Fmoodlebox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moodlebox","download_url":"https://codeload.github.com/moodlebox/moodlebox/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247339155,"owners_count":20923014,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["access-point","moodle","moodle-server","moodlebox","offline","raspberry","raspberry-pi","raspberry-pi-3","raspberry-pi-4","raspberry-pi-5","raspberry-pi-zero-2-w","raspberrypi","rpi3","rpi4","rpi5","wi-fi","wi-fi-router","wifi","wifi-hotspot"],"created_at":"2024-07-31T22:00:47.051Z","updated_at":"2025-04-05T13:07:01.801Z","avatar_url":"https://github.com/moodlebox.png","language":"Jinja","readme":"# MoodleBox\n\n[![GitHub release](https://img.shields.io/github/release/moodlebox/moodlebox.svg)](https://github.com/moodlebox/moodlebox/releases/latest)\n[![GitHub Release Date](https://img.shields.io/github/release-date/moodlebox/moodlebox.svg)](https://github.com/moodlebox/moodlebox/releases/latest)\n[![Github Downloads](https://img.shields.io/github/downloads/moodlebox/moodlebox/total.svg)](https://github.com/moodlebox/moodlebox/releases/)\n[![GitHub last commit](https://img.shields.io/github/last-commit/moodlebox/moodlebox.svg)](https://github.com/moodlebox/moodlebox/commits/)\n[![CI](https://github.com/moodlebox/moodlebox/workflows/CI/badge.svg)](https://github.com/moodlebox/moodlebox/actions?query=workflow%3ACI)\n[![Donate PayPal](https://img.shields.io/badge/donate-PayPal-orange.svg)](https://www.paypal.me/moodlebox/50)\n\nA Moodle server and Wi-Fi router on Raspberry Pi.\n\n## MoodleBox Documentation\n\nVisit the [MoodleBox web site][website] for more information about the MoodleBox features or any question about the usage of a MoodleBox.\n\n__If you just want to use a MoodleBox, just [install it with Raspberry Pi Imager][install] 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][website].__\n\n### Asking Support Questions\n\nWe have an active [discussion forum][forum] where users and developers can ask questions. Please don't use the GitHub issue tracker to ask questions.\n\n## Building the MoodleBox disk image from scratch\n\nIf 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][install] 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][website].\n\nTo build a MoodleBox from scratch with this script, you need a Raspberry Pi 3B, 3B+, 4B or 5.\n\n1. Clone [Raspberry Pi OS (64-bit) Lite image](https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit) on your microSD card.\n1. Create a `ssh.txt` file on the `bootfs` partition with any content.\n1. Create a `userconf.txt` file on the `bootfs` partition, and add the following line to it:\n   `moodlebox:$6$rmLgDblolU16oLmc$i7QzARV8o84tCDQA/Kq1xU3eYwPWlocqVmpFTcSWqAqiWJpFyTLd.g9W5ktDDh16rq5lwYG9wpHY224m5nHLk0`\n1. Insert the microSD card into your Raspberry Pi.\n1. Connect your Raspberry Pi to your Ethernet network and boot it.\n1. [Install Ansible](https://docs.ansible.com/ansible/latest/installation_guide/index.html) on your computer. On macOS, use e.g. `brew install ansible`.\n1. [Install `sshpass`](https://gist.github.com/arunoda/7790979) to enable passing SSH password to the Raspberry Pi. On macOS, use e.g. `brew tap esolitos/ipa; brew install sshpass`.\n1. [Clone this repository][git] to your local drive.\n1. Create a `keys` directory in the repository folder and copy your public key into it, under the name `id_rsa.pub`.\n1. 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.\n1. Run `ansible-playbook moodlebox.yml` from the repository folder.\n1. Wait 15–50 minutes, depending on your Raspberry Pi model, SD card speed and Internet bandwidth. You're done.\n\n### Overriding defaults\n\nYou 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:\n\n    moodlebox_username: 'myusername'\n    moodlebox_password: 'secret'\n    moodlebox_timezone: 'Australia/Perth'\n\nAny variable can be overridden in `config.yml`; see the file `default.config.yml` for a list of available variables.\n\n## Availability\n\nThe code is available at [https://github.com/moodlebox/moodlebox][git].\n\n### Release notes\n\nSee [Release notes](https://github.com/moodlebox/moodlebox/blob/master/CHANGELOG.md).\n\n## Sponsor\n\nMoodleBox is sponsored by [E-learning Touch'](https://www.elearningtouch.com/) Moodle Partner.\n\n![E-learning Touch'](https://www.elearningtouch.com/wp-content/uploads/2018/09/logo_elt_2018.jpg)\n\n## Thanks\n\n- To Daniel Méthot, for the [idea of a MoodleBox](https://moodle.org/mod/forum/discuss.php?d=278493)\n- To Christian Westphal, for the [first POC](https://moodle.org/mod/forum/discuss.php?d=331170) of a MoodleBox\n- To the [Raspberry Pi Foundation](https://www.raspberrypi.org/), for a splendid small computer\n- To [Martin Dougiamas](https://en.wikipedia.org/wiki/Martin_Dougiamas), for giving us Moodle, and to the [Moodle community](https://moodle.org/)\n\n## License\n\nCopyright © 2016 onwards, Nicolas Martignoni nicolas@martignoni.net.\n\nAll contributions to this repository are licensed under AGPLv3 or any later version.\n\nMoodleBox 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\nchanged it substantially:\n\n```\n@copyright Copyright © \u003cyear\u003e, \u003cyour name\u003e (\u003cyour email address\u003e)\n```\n\n  [website]: https://moodlebox.net\n  [download]: https://moodlebox.net/download\n  [forum]: https://discuss.moodlebox.net/\n  [git]: https://github.com/moodlebox/moodlebox\n  [install]: https://moodlebox.net/en/help/copy-the-disk-image-on-a-sd-card/\n","funding_links":["https://github.com/sponsors/moodlebox","https://moodlebox.net/give/","https://www.paypal.me/moodlebox/50"],"categories":["Jinja","⚡ Development"],"sub_categories":["🏭 Development Environment"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoodlebox%2Fmoodlebox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoodlebox%2Fmoodlebox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoodlebox%2Fmoodlebox/lists"}