Workshop Series by Toronto Mesh
Participants will learn about community networks, wireless mesh networks, distributed applications, and train their pet Raspberry Pi to do networking things. While this course assumes no technical expertise, all sessions contain a technical hands-on component and a reflection activity to explore the role of technologies on our society. A socially-minded tinkerer who enjoys a collaborative learning experience will be the ideal participant.
This course can be facilitated in an environment without internet access. Participants will be expected to bring their own laptop.
Duration: 1.5 hours per week for 6 weeks
Discussion: #p2p-internet-workshop:tomesh.net
Class materials are written as Markdown files and presentation slides are created as Markdown-based Remark slides. All generated assets are hosted on GitHub Pages and packaged as a downloadable archive on GitHub Releases.
If you want to generate course assets yourself, simply run ./install-dependencies.sh
and ./build.sh
. You will find the generated assets in the output
folder. The ./package.sh
script is used to zip up the generated assets into downloadable archives and to create the course website.
Travis CI is configured to build, package, and publish a new release to GitHub Pages and Releases whenever a new tag is pushed. So all you need to create a new release is to push a new tag with git tag <version>
and git push --tag
.
Each node consists of one:
It is possible to use other USB WiFi adapters with rt2800usb
, ath9k_htc
, or rtl8192cu
drivers with slight modifications to the software.
Other accessories:
Download the latest mesh-orange release of raspberrypi3-<version>_default.img
, then flash the image onto an SD card with a tool like Etcher.
Download the latest mesh-workshop release and unpack it. Mount the FAT partition of the SD card you flashed in the previous step, then use the tool mesh-workshop
to install workshop files on each node:
$ ./mesh-workshop
Usage: mesh-workshop confpath nodename
Example: mesh-workshop /Volumes/BOOT/conf.d/ bloor
The example shows a path to your SD card on Mac OS, your local path may differ. The command installs node profile and workshop files to the SD card conf.d
for the node with hostname bloor
.
The first version of this syllabus is created by Toronto Mesh contributors: @benhylau, @darkdrgn2k, @dcwalk, @uditvira, @Shrinks99, and @Pedro-on-a-bike. While most of the material is created new, the course also incorporates many prior works listed here, or otherwise referenced in their individual course modules.
Hands-on activities rely on software from many projects: mesh-orange, mesh-router-builder, mesh-workshop, steamlink, cjdns, Yggdrasil, IPFS, Secure Scuttlebutt. Course material generation uses markdown-pdf and decktape. The course website is built with Jekyll, and the theme is from Mozilla's Open Leadership Training Series. Icons from Font Awesome and Jake Ingman are used.
All Building the Peer-to-Peer Internet workshop materials at github.com/tomeshnet/p2p-internet-workshop/ are licensed under a Creative Commons Attribution-ShareAlike 4.0 International License, the text of which is included in the repository LICENSE
file.