Difference between revisions of "Mesh"

From Sudo Room
Jump to navigation Jump to search
(123 intermediate revisions by 15 users not shown)
Line 1: Line 1:
<span style="color:#20b24b;">'''<big>Feb 21: Launched [https://sudoroom.org/wiki/Mesh/Blog#Developer_Launch.21 "Snow Crash" release candidate v.0.1.0] - now deploying the first batch of experimental nodes!</big>'''</span>
<center>{{#setlogo:Meshlogo.png}}
&nbsp;
[[File:Sudomesh.jpg|350px]]</center>


'''We are an all-volunteer organization building the People's Open Network, a community-owned and operated non-profit internet infrastructure in Oakland.'''
Sudo Mesh is a people-powered project. That means that anyone can join the network if they're willing to contribute by [https://github.com/sudomesh/bugs/issues/new reporting bugs], improving [https://github.com/sudomesh software], fixing hardware, [https://sudoroom.org/wiki/Mesh/WalkThrough setting up a node], [https://peoplesopen.net/blog/new-node-in-the-berkeley-hills/ installing rooftop nodes], telling your friends about us, [https://peoplesopen.net/blog/build-your-own-internet-workshop/ joining for a workshop], bringing pizza to a hack session, donating  [[Mesh/Wishlist|equipment]]/[https://www.patreon.com/peoplesopennet money]/[https://blockchain.info/address/12RxU4DpLpdWcmEBn7Tj325CCXBwt5i9Hc Bitcoin], learning with us about how the internet works, or just being patient if something is broken :)


A [http://en.wikipedia.org/wiki/Mesh_networking mesh network] is ''essentially'' free internet that gives users an alternative to their service provider. It consists of routers running software that allows them to communicate with other routers around them. The users who join the network enable others to be on the network and support [http://en.wikipedia.org/wiki/Net_neutrality net neutrality]. These networks are resilient to disasters because the routers are distributed throughout the community rather than being dependent on the infrastructure provided by service providers. 
'''Interested in learning more and exploring?''' Check out our [[#Join Us|Join Us]] section. You do not need to be technically skilled to be part of this project. We need people willing to mount gear on rooftops, folks who want to do public outreach, graphic design artists, film-makers, documentarians and so much more! Show up at a monthly general meeting and get involved!


The software we've created is [http://en.wikipedia.org/wiki/Open_source open source] and we're using it to develop free internet for Oakland and the surrounding areas. We hope the community will use our software to create a network that's ''available everywhere for free''. It's a project that will give access to internet, regardless of income, and reduce the divide between communities. We hope these networks will connect our neighbors, support local businesses, and enable community collaboration. In the event of disaster or censorship, a mesh network is a resilient means of communication and sharing of information.
----


[[File:510NetworkDishes.jpg|200px|thumb|right|Dishes in Action]]
<center>{{Mesh nav}}</center>


{{Mesh nav}}
----


&nbsp;
__NOTOC__
<div style="margin: 1em auto 1em auto; text-align: center; background: #ffffff; font-size: 10.5pt; padding: 10px; width: 96%; border: 0px solid #376a97;margin-center:10px;">
<!-- This is where the formatting for the 3 columns begins -->
{| cellspacing="0" width="100%" style="clear: both;"
|colspan="3" style=border: 0px solid black; float:left; padding-left:1em; padding-right:0.5em;"|
{| cellspacing="5" cellpadding="10" width="100%"
|- valign="top" 
|style="font-size:90%; padding:10px 10px; background: #FDF4F4; border: 0px solid black;padding-left:1em;padding-right:0.5em;" width="40%" align="left"|
=What does it mean?!=
Imagine if the wifi router in your home connected to the wifi routers in your neighbours' homes and they again connected to their neighbours to form a huge free wireless network spanning the city! That's exactly what a [https://en.wikipedia.org/wiki/Mesh_networking mesh network] is, or at least what it can be. Roads and telephone poles are owned by government or private interests and laying down cable is expensive, but by using wireless signals that hop from building to building we can create a community-owned and -operated, free-as-in-freedom alternative to corporate Internet Service Providers. Community wireless mesh networks are growing around the world, creating local 'internets' that support Net Neutrality and community control of critical infrastructure.


&nbsp;
We are spending a lot of time developing [https://github.com/sudomesh/ software] to make it cheap and easy for anyone to be participate in cooperative communications infrastructure, regardless of technical skill.


= Join Us =
= Who are you? =
'''sudomesh is a group of volunteers operating out of the [https://sudoroom.org sudo room] hackerspace at the [https://omnicommons.org Omni Commons] - a collective of collectives stewarding a large community space in Oakland, California. We develop software and assemble hardware systems to help build open community networks like the [https://peoplesopen.net People's Open Network], a community-owned and -operated non-profit internet infrastructure in Oakland.''' We are all unpaid volunteers building open technology that helps to connect our neighbors, support local businesses, and enable community collaboration and cultural production. In the event of a natural disaster or state censorship, community mesh networks can be a resilient means of communication and sharing of information.


* Join the [http://lists.sudoroom.org/listinfo/mesh email list]!
= Frequently Asked Questions (FAQs)=
* Follow us on [https://twitter.com/sudomesh twitter] and like us on [https://www.facebook.com/sudomesh facebook].
* [[Mesh/Decisions|Decisions]] - What decisions have we made, and why?
* We have '''weekly hack nights''' on Tuesdays and Thursdays, 7:30-11:00pm at [[Getting_there|Sudo Room]]. The first three Thursdays of the month are work nights -- help us change the internet!
* [[Mesh/Funding|Funding]] - How the heck do we fund this thing?
* Learn more at our general meetings, which are the last Thursdays of every month. We have focus groups and we collaborate on different parts of the or join the mailing list for details.
* [[Mesh/Legal|Legal]] - How do we use exit nodes, relays and legal structures to protect node owners and ourselves?
* Chat with us on [http://www.irchelp.org/irchelp/irctutorial.html IRC]: #peoplesopen.net on [http://webchat.freenode.net/?channels=peoplesopen.net Freenode IRC]
* [[Mesh/Hosting|Hosting]] - How are we hosting and what does it cost?
* We generally collaborate on [https://pad.riseup.net/p/sudomesh meeting notes] at each meeting. Look at our archive of past [[Mesh/Minutes|meeting minutes]]!
* [[Mesh/Backup|Backup]] - How do we handle backups?
* [[Mesh/Server security|Server Security]] - How do we ensure server security?
 
= Logistics =
* [[Mesh/Minutes|Meeting Minutes]] - Notes from our weekly meetings dating back to January 2013.
* [[Mesh/Taxes|Taxes]] - Filed taxes for the sudo mesh non-profit


= How to Help =
= Research =
* [[Mesh/Other mesh projects|Other mesh projects]] around the world that have inspired us to make our own network!
* [[Mesh/Interviews with other meshers|Interviews]] - we interviewed other experienced meshers
* [[Mesh/Documentation|Other documentation]] - books, articles, wikis, blog posts.
* [[Mesh/Oakland|Oakland]] - information and resources pertaining to Oakland community organizations, wireless initiatives, policy and research initiatives
* [[Mesh/Other muni networking projects|Municipal projects]] - examples of progressive uses of municipal networks.
* [[Mesh/Decentralized FM/AM radio|Decentralized FM/AM radio]] - Bit of research on adding legal FM/AM transmitters to nodes.
* [http://wiki.tidepools.com Tidepools] - [[User:tunabananas|Jenny Ryan]] designed local use cases for a community mobile mapping application built to run on mesh networks.
* [https://wiki.projectmeshnet.org/Main_Page Project Meshnet] - Extensive wiki on the /r/darknet project, including extensive list of [https://wiki.projectmeshnet.org/Projects projects coordinating with them].
* [http://en.wikipedia.org/wiki/Long-range_Wi-Fi#Notable_links Long Range Wifi] - Info on the longest-range wifi connections ever made.
* [https://github.com/adafruit/Adafruit-WebIDE Adafruit's Web IDE built for Raspberry Pi] but probably good for editing code on any device and ensuring it is managed with a code repo.  By default it uses [https://bitbucket.org bitbucket.org] but it could probably be configured for Github.


We successfully concluded a crowdfunding campaign on WePay (July 2013) to buy the first 100 wifi routers for the mesh! Thanks to all who supported with a donation. See [[Mesh/Purchases]] for details on how much was raised, who contributed, and what we've procured thus far with the funds!
|style="font-size:90%; padding:10px 10px; background: #F4FDF6; border: 0px solid black;padding-left:1em;padding-right:0.5em;" width="20%"|
<center>
= Our Projects =
[[File:Mesh_Oakland_High_Res.png|center|187px|thumb|Building a community-owned and -operated wireless mesh network in Oakland, California and beyond!|link=https://peoplesopen.net]]<br />
[[File:Disasterradio.png|center|187px|thumb|link=https://disaster.radio|Disaster-resilient communications network powered by the sun.]]<br />
[[File:Byoi.png|center|187px|thumb|link=https://buildyourowninter.net|Instructions for building your own internet, plus a global directory of community wireless mesh networks.]]</center><br />
[[File:Laptops4all.png|center|187px|thumb|link=https://laptopsforall.org|Upcycling retired/donated laptops to those who can't afford them.]]<br />


There are many ways you can help us:
|style="font-size:90%; padding:5px 10px; background:#F4F8FD;border: 0px solid black;padding-left:1em;padding-right:0.5em;" width="40%" align="left"|


*Support us with a small weekly donation on [https://www.gittip.com/sudomesh/ gittip].
<center>
= How To Participate =
</center>
If you want to join the mesh you'll need a mesh router at your home! Currently the best way to get one is to show up at our monthly general meeting as described above. We need more people on the network to improve the quality of the service. When you setup a node, you improve the service for everybody on the network and give more access to your community. We encourage participants to ask their communities to join their networks and create distributed services for them. We have a [[Mesh/User_Guide|user guide]] to help you get on the network!
* Chat with us on [https://peoplesopen.net/chat RocketChat], the #peoplesopen channel in [https://www.scuttlebutt.nz/ Secure Scuttlebutt], or on [http://www.irchelp.org/irchelp/irctutorial.html IRC]: [http://webchat.freenode.net/?channels=peoplesopen.net #peoplesopen.net] (see also [[IRC | IRC Intro]])
* Join the [http://lists.sudoroom.org/listinfo/mesh email list]
* We have weekly meetings every Tuesday <s>from 7:30-9pm at [[Getting_there|sudo room]]</s> from [https://meet.jit.si/sudomesh2020 8-9pm via Jitsi]. We have focus groups and collaborate on different parts of the project - from [https://github.com/sudomesh/propaganda design] to [https://github.com/sudomesh software development], documentation to hardware hacking, [https://sudorom.org/wiki/Mesh/SFBayArea community outreach] and [https://github.com/sudomesh/mounting/blob/master/PONIprogram.md climbing rooftops to mount nodes]!
* Come to our weekly Tuesday meetings in <s>[[Getting_there|sudo room]]</s> cyberspace. The quarantine format is much more relaxed, and we welcome newcomers! <s>The first three Tuesdays of the month are hack nights where we work (often in parallel) on everything from pamphlets to maps to code. This is a good opportunity to find someone familiar with the ins and outs and ask questions. The last Tuesday of the month is a more structured recap meeting, where we follow an agenda, get updates on what progress was made in the last month, and plan for the next month.</s>
* We generally collaborate on [https://peoplesopen.net/notes notes] at each meeting. Look at our archive of past [[Mesh/Minutes|meeting minutes]]!
* Contribute to the network by installing a mesh node at your location using our handy [https://sudoroom.org/wiki/Mesh/WalkThrough Mesh Node Setup Walkthrough]. This is especially helpful for those who are within range of an existing node (seen as a wireless SSID named "peoplesopen.net").
*Check out our [[Mesh/ToDos|ToDo list]]
*Support us with a small monthly donation on [https://www.patreon.com/peoplesopennet Patreon], here's [[Mesh/Purchases|how we spend it]].
*Send bitcoins to our wallet address: {{bitcoin wallet}}
*Send bitcoins to our wallet address: {{bitcoin wallet}}
*Come to our meetings in Oakland! (listed above).
*Check out our [[Mesh/Wishlist|wishlist]], we have requests!
*Talk to your neighbors about joining the mesh.
*Improve our documentation
 
*Talk to your community about joining the mesh - here are some [https://github.com/sudomesh/propaganda resources] for doing so!
= Technical overview =
* Follow us on [https://twitter.com/sudomesh twitter] and like us on [https://www.facebook.com/sudomesh facebook].
 
The mesh is made up mostly of wifi routers using Atheros chipsets and running [https://github.com/sudomesh/sudowrt-firmware our own firmware] based on [http://openwrt.org/ OpenWRT], [http://www.open-mesh.org/projects/batman-adv/wiki/ B.A.T.M.A.N. Advanced] and wlan slovenja's [https://github.com/sudomesh/tunneldigger tunneldigger]. We're using 2.4 GHz routers for indoor and street-level coverage and 5 GHz 802.11n routers for high-bandwidth and long distance roof to roof links. Most of our outdoor equipment is from Ubiquiti. We refer to the wifi routers as mesh nodes, or simply nodes.
 
Node-owners can choose to connect the nodes to their existing LAN using ethernet. If they have Internet access, they can share a portion of it with the mesh. The amount of bandwidth shared is limited with 'tc'. It is chosen at node-configuration time and can be changed using the simple built-in web admin interface.
 
== Wifi networks and IP assignment ==
 
The nodes each run three wifi networks (three SSIDs on the same physical wifi interface):
 
* peoplesopen.net is an open access point. Most people will use the network by connecting to this.
* pplsopen.net-node2node is an ad-hoc network that the nodes use to mesh with each other
* A private wifi network is named by the node owner (or a name is generated) and uses WPA2-PSK.
 
If a node-owner is sharing internet, then the node will create a layer 2 (L2TP) tunnel to a VPN server on the Internet using tunneldigger. batman-adv will connect over this tunnel to other nodes on the mesh, so the mesh can route traffic over the internet if no wifi path to another node is available (e.g. other nodes are physically too far away). When people connect to the peoplesopen.net access point and try to access the Internet, the traffic will flow through the VPN, and the source IP of requests will appear to be the VPN with the sudo mesh organization listed as the abuse contact.
 
The nodes run DHCP servers and each have a /24 IPv4 subnet in the 10.0.0.0/8 range that is statically assigned by coordination between mesh groups and individuals hosting and administrating their own nodes on People's Open Network (currently only the sudo mesh organization). If a user connects to the peoplesopen.net access point on a node that isn't sharing internet, then batman-adv intercepts the DHCP request and forwards the request to another node on the network that has Internet connectivity (see the gw_mode option for batman-adv).
 
The private network does not limit bandwidth and provides access to both direct access to the Internet (if the node owner has hooked the node up to the Internet) and access to the mesh. Each node's private network runs on 172.30.0.0/16 and uses NAT between the private network and the mesh. It does not accept any new incoming connections from the mesh onto the 172.30.0.0/16 subnet.
 
== Node flashing and configuration ==
 
One of our medium-term goals is to be able to sell nodes on our website and minimize the amount of work required to re-flash/configure the nodes and provide documentation for the user. To facilitate this, our current process for new nodes is:
 
* A new node is flashed either automatically (using e.g. [https://github.com/sudomesh/ubiquiti-flasher ubiquiti-flasher] or [https://github.com/sudomesh/merakiflasher merakiflasher]) or manually with the [https://github.com/sudomesh/sudowrt-firmware sudowrt] firmware.
* The node is plugged into a server running our [https://github.com/sudomesh/node-configurator node-configurator] software.
* A sudo mesh volunteer pulls up https://nodeconf.local and uses a web interface to fill out contact info for the node owner, initial bandwidth sharing limits and private wifi SSID.
* The node-configurator generates SSH keys, SSH root password, web admin password and private wifi password, then it configures the node, saves the info in the [https://github.com/sudomesh/node-database node database] and shuts down the node.
* The node-configurator automatically [https://github.com/sudomesh/ql570 prints a sticker] containing some basic info including wifi and web admin passwords.
* The sudo mesh volunteer attaches the sticker to the nodes power supply and puts the node back in the box with a set of instructions for how to install and use the node.
* The node is shipped to the new node owner!
 
The node-configurator has both a [https://github.com/sudomesh/node-configurator server] and a [https://github.com/sudomesh/node-configurator-client client] component. The newly flashed sudowrt nodes automatically run the node-configurator client when they boot, and the client uses DNS-SD and mDNS to find node-configurator servers on the local network. The node then connects to the server using SSL and the server is ready to configure the node. The node-configurator server talks to Avahi using DBUS to announce itself using DNS-SD. The server is written in Python using Twisted and the client is written in Lua using luasec, and uses the [https://github.com/sudomesh/mdnssd-min mdnssd-min] utility to provide DNS-SD and mDNS.
 
The node-configurator includes a webserver and management web app. The web app talks to the server and connected nodes using websockets.
 
== Node management ==
 
All nodes set up by sudo mesh automatically allow root access using an SSH key held by a few trusted sudo mesh organizers. This is to allow us to update the firmware and troubleshoot network issues. We inform node-owners of this fact and tell them how to prevent sudo mesh from accessing their nodes, but also indicate that they should be ready to manage their own node if they choose to do this.
 
We don't yet have a solution for node monitoring but we're expecting to use the new version of wlan slovenja's nodewatcher software.
 
We don't yet have an automatic update solution in place, but it will work similarly to the node-configurator:
 
* Any number of node-updater servers announce themselves on the mesh and whether or not an update is available.
* The nodes run a future version of mdnssd-min as a daemon that keeps a currently list of node-updaters.
* Once every N hours +/- a random factor, if any node-updaters have updates available, all nodes connect to a randomly chosen node-updater and request an update.
* The node-updaters send the nodes an ipk file with the update and the nodes check the signature and install it if it's signed by a trusted authority.
 
== Minimum hardware specs ==
 
The sudowrt firmware minimally needs:
 
* Atheros chipset
* 32 MB ram
* 8 MB flash
**(or 4 MB flash and a USB port with a USB drive attached)
 
The firmware is currently working on the older Atheros chipset (OpenWRT "atheros" architecture) as well as the newer Atheros chipsets (OpenWRT "ar71xx" architecture).
 
We don't support less than 32 MB of ram because OpenWRT itself doesn't support less than 32 MB of ram as of the 12.09 "Attitude Adjustment" release.
 
We could probably squeeze the firmware into 4 MB flash, but we've decided it's not worth the trouble, and using jffs instead of squashfs simplifies some things.
 
== Internet bandwidth ==
 
We encourage node-owners to share their internet with the mesh, but on top of that we are talking to local non-profit organizations and ISPs about getting access to more cheap and free bandwidth.
 
=Social=
 
==Community-Based Participatory Action Research==
* We are currently researching existing community spaces across Oakland for potential collaboration, and have established relationships with several grassroots organizations in the San Antonio neighborhood as well as the [http://archive.org Internet Archive] (which has a 70ft tower in Richmond). Moving forward, we intend to expand the mesh through reaching out to grassroots organizations and local businesses, schools, libraries, etc: our process of designing and deploying mesh services guided by the needs and desires of existing community actors. See our [https://docs.google.com/spreadsheet/ccc?key=0Ao_Q7DQvNFT-dC1mVjlaeTVSckhrZUc4VjNvZ0dGTlE&usp=drive_web Community Outreach spreadsheet] to add organizations or contacts.
 
* The ethnographic research component of the project also involves interviewing local residents, designing and distributing community surveys, historical and political analysis, and asset mapping of existing and potential community resources.
 
* Another key aspect of the project is working with [https://sudoroom.org/wiki/Mesh/Other_mesh_projects existing mesh groups] across the planet, [https://sudoroom.org/wiki/Mesh/Interviews_with_other_meshers learning from them through interviews], and [https://sudoroom.org/wiki/Mesh/Presentations collaborating at conferences] and through [https://www.newschallenge.org/challenge/2014/submissions/toward-a-network-commons-building-an-internet-for-and-by-the-people shared funding campaigns].
 
==Documentation of use cases and user stories==
* Articulating use cases for mesh networks involves the creation of user stories based on interviews with local residents and participatory engagement with existing community organizations and groups. The research process will be transparently documented on a research wiki, incorporating interview notes, meeting minutes, an annotated bibliography, written analysis and visual infographics (for an example, see Jenny's past research wiki here: http://wiki.tidepools.co).
 
* This documentation is intended to support a model of open source technology design that is bottom-up in nature, rooted in the interests of those who would receive the greatest humanitarian benefit from the technology and participate intimately with the development process.
 
==Illustrated instructables for learning about networking==
* A major focus of the project is to experiment with recycled and donated hardware for the purposes of designing mesh solutions at minimal cost. Experimentation with various firmwares (eg; Commotion, Freifunk, Byzantium) and protocols (eg; OLSRd, batman-adv, Babel) using off-the-shelf and upcycled hardware (eg; donated routers and satellite dishes) will be extensively documented.
 
* Well-designed instructables/comics will incorporate use cases, user stories, and DIY building processes in an effort to engage everyday folks to experiment with mesh technology in their local neighborhoods. See also the [[Hackpack]] project toward teaching hacking skills to local teenagers.
 
* See our [[Mesh/Diagrams|Diagrams]] page for first drafts of instructables and diagrams of the network topology.


==Getting municipal actors to support the mesh==
== Developers ==
*Over time, we expect municipal actors (people working for local governments, libraries, schools, etc.) to see the mesh as an ally in efforts to bridge the digital divide. We are creating a [[why municipal actors should care about the mesh|short introduction]] to the project explaining why municipal actors should care about the mesh what they can do to support it.


= Mesh pages =
We need hardware and software engineers to help us with our code. We have an overview of [[Mesh/Technical_Overview|technical documentation]] that will be helpful in understanding the network.
*[[Mesh/ToDos]] - Tangible To Dos! Add some on, take some on!
*[[Mesh/Wishlist]] - List of hardware we'd love to experiment with!


==Design==
If you want to immediately help, check out [https://github.com/sudomesh our code], [https://github.com/sudomesh/sudowrt-firmware/milestones look at our remaining issues for upcoming milestones], report any [https://github.com/sudomesh/bugs bugs] or help us squish them!
*[http://meshmap.sudoroom.org Map] - of potential nodes.
*[[Mesh/Website]] - Notes and documentation for the design of peoplesopen.net and meshthepla.net.
*[[Mesh/MeshApps]] - Local applications to run on the mesh!
*[[Mesh/Swag]] - Research on custom-printed t-shirts and other swag.
*[[Mesh/Stickers]] - Sticker design
*[[Ascii Art]] - for linux logins


==Technical Documentation==
Here are some of the projects that need attention:
*[[Mesh/Tracking]] - Problems and solutions related to tracking, logging and anonymity
*[[Mesh/WalkThrough]] - Easy how-to for setting up OpenWRT & BATMAN-adv on Ubiquiti routers
**[[Mesh/OpenWRT]] - Experiences with the OpenWRT router firmware
**[[Mesh/BATMAN-adv]] - Experiences with the batman-adv mesh protocol
*[[Mesh/Firmware]] - Everything related to our firmware
**[[Mesh/Firmware/Flash]] - How to install the sudowrt firmware based on openwrt with supported hardware
**[[Mesh/Firmware/Splash page]] - Splash page / Captive Portal
**[[Mesh/Firmware/Bandwidth shaping]] - QoS / Bandwidth shaping
**[[Mesh/Firmware/Zeroconf]] - Issues related to mDNS and DNS-SD
**[[Mesh/Firmware/MTU_issues]] - MTU issues
**[[Mesh/Firmware/Generating]] - How do we generate firmwares on demand
**[[Mesh/Firmware/Web Admin Development]] - Web admin development
*[[Mesh/Network topology]] - High-level explanation of the mesh network structure
*[[Mesh/Specs]] - Specs sheet on different access points
*[[Mesh/Frequencies]] - Information on different frequencies.
*[[Mesh/Software tools]] - List of useful mesh troubleshooting tools
*[[Mesh/Terms]] - Hidden Node, Fresnal zone, and other jargons
*[[Mesh/Power]] - Stuff about power usage, batteries and solar power.
*[[Mesh/Monitoring]] - notes about how to monitor systems
*[[Mesh/Spectrum]] - Different forms of spectral analysis
*[[Mesh/Hardware support]] - Officially and unofficially supported hardware / routers
*[[Mesh/Relay setup]] - Setting up a relay node
*[[Mesh/Exit setup]] - Setting up an exit node
*[[Mesh/Spectrum mapping]] - The setup we use for mapping local spectrum and wifi usage
**[[Mesh/Spectrum mapping/XO-1 Laptop]] - How to configure an XO-1 laptop for use with our spectrum mapping setup
* [[Mesh/Install]] - physical installation notes/stories
* [[Mesh/Diagrams]] - technical diagrams to support new outreach materials


==Operational==
* [https://github.com/sudomesh/sudowrt-firmware sudowrt-firmware] - The sudowrt firmware
*[[Mesh/Legal]] - How do we use exit nodes, relays and legal structures to protect node owners and ourselves?
* [https://github.com/sudomesh/sudowrt-web-ui sudowrt-web-ui] - The new and improved web admin UI for sudowrt nodes
*[[Mesh/Hosting]] - How are we hosting and what does it cost?
* [https://github.com/sudomesh/ubus-https-forwarder ubus-https-forwarder] - Allow management of extender nodes from home node web UI
*[[Mesh/Backup]] - How do we handle backups?
* [https://github.com/sudomesh/service-browser The Service Browser] - Web UI for browsing mesh services
*[[Mesh/Server security]] - How do we ensure server security?
* [[Mesh/Distributed Services|Mesh Services]] - Which services should we provide?
*[[Mesh/Naming]] - What do we call ourselves?
*[[Mesh/Marketing]] - Inspiration and links to marketing materials in progress.
*[[Mesh/Purchases]] - Details on our purchases, made by either individuals or through our crowdfunded money.
*[[Mesh/Inventory]] - What we currently have.
*[[Mesh/Donations]] - List of donations
*[[Mesh/Decisions]] - Decisions on how to operate
*[[Mesh/Challenges]] - Challenges faced. Problems to be solved.
*[[Mesh/Checkouts]] - Who took what gear home
*[[Mesh/Funding]] - Ideas on funding structures and list of grants to apply for.


==Background Research==
== Designers ==  
*[[Mesh/Interviews with other meshers]] - In which we attempt to extract the results of their hard-won experience.
*[[Mesh/Other mesh projects]] - List of active and inactive meshes we know about
*[[Mesh/Documentation]] - Books, articles, wikis, blog posts.
*[[Mesh/Oakland]] - Information and resources pertaining to Oakland community organizations, wireless initiatives, policy and research initiatives
*[[Mesh/Other muni networking projects]] - Examples of progressive uses of muni-networks


= Firmwares / groups =
We need artists and designers to make things look nice! We have [[Mesh/Design|design schemes]] we already use, but we're always looking to improve it. We need to improve our presentation content and [[Mesh/Diagrams|diagrams]] too! We've been focused on these areas:
* [[Mesh/Presentations]] - Past presentations, talks, workshops, tutorials and videos
* [[Mesh/Diagrams|Diagrams]] - Diagrams outlining the network topology and technical stack
* [[Mesh/Design|Design]] - Website & logo design; swag for enthusiasts; and marketing inspiration.
|}


*[[Mesh/Freifunk]]
----
*[[Mesh/Commotion]]


=Web Resources=
''Please note that all contributions to Sudo Room may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here. You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Sudo Room:Copyrights for details). Do not submit copyrighted work without permission!''
*[http://510pen.org 510pen] - East Bay community wireless mesh network spawned in 2009 by [[User:mfb|Mark Burdett]]
*[http://wiki.tidepools.com Tidepools] - [[User:tunabananas|Jenny Ryan]] designed local use cases for a community mobile mapping application built to run on mesh networks.
*[https://wiki.projectmeshnet.org/Main_Page Project Meshnet] - Extensive wiki on the /r/darknet project, including extensive list of [https://wiki.projectmeshnet.org/Projects projects coordinating with them].
*[http://en.wikipedia.org/wiki/Long-range_Wi-Fi#Notable_links Long Range Wifi] - Info on the longest-range wifi connections ever made.
*[https://github.com/adafruit/Adafruit-WebIDE Adafruit's Web IDE built for Raspberry Pi] but probably good for editing code on any device and ensuring it is managed with a code repo.  By default it uses [https://bitbucket.org bitbucket.org] but it could probably be configured for Github.


[[Category:Projects]]
[[Category:Projects]][[Category:Mesh]]

Revision as of 20:28, 18 August 2020

Sudomesh.jpg

Sudo Mesh is a people-powered project. That means that anyone can join the network if they're willing to contribute by reporting bugs, improving software, fixing hardware, setting up a node, installing rooftop nodes, telling your friends about us, joining for a workshop, bringing pizza to a hack session, donating equipment/money/Bitcoin, learning with us about how the internet works, or just being patient if something is broken :)

Interested in learning more and exploring? Check out our Join Us section. You do not need to be technically skilled to be part of this project. We need people willing to mount gear on rooftops, folks who want to do public outreach, graphic design artists, film-makers, documentarians and so much more! Show up at a monthly general meeting and get involved!


Quick Links (see below for more details)
Documentation Technical Outreach Operations Research External Links
Install Instructions Overview FAQ Minutes User Research peoplesopen.net
Net Topology Hardware Blog To-Do's SF Bay Area network map
Presentations Power How to Help Legal Interviews code on github
History Security Wishlist Inventory Other Meshes DisasterRadio
Press Backup Website Meetings Software Tools BuildYourOwnInter.Net
Firmware Hosting Propaganda Funding Local Services
Mounting Decisions Self-Education
Next gen


What does it mean?!

Imagine if the wifi router in your home connected to the wifi routers in your neighbours' homes and they again connected to their neighbours to form a huge free wireless network spanning the city! That's exactly what a mesh network is, or at least what it can be. Roads and telephone poles are owned by government or private interests and laying down cable is expensive, but by using wireless signals that hop from building to building we can create a community-owned and -operated, free-as-in-freedom alternative to corporate Internet Service Providers. Community wireless mesh networks are growing around the world, creating local 'internets' that support Net Neutrality and community control of critical infrastructure.

We are spending a lot of time developing software to make it cheap and easy for anyone to be participate in cooperative communications infrastructure, regardless of technical skill.

Who are you?

sudomesh is a group of volunteers operating out of the sudo room hackerspace at the Omni Commons - a collective of collectives stewarding a large community space in Oakland, California. We develop software and assemble hardware systems to help build open community networks like the People's Open Network, a community-owned and -operated non-profit internet infrastructure in Oakland. We are all unpaid volunteers building open technology that helps to connect our neighbors, support local businesses, and enable community collaboration and cultural production. In the event of a natural disaster or state censorship, community mesh networks can be a resilient means of communication and sharing of information.

Frequently Asked Questions (FAQs)

  • Decisions - What decisions have we made, and why?
  • Funding - How the heck do we fund this thing?
  • Legal - How do we use exit nodes, relays and legal structures to protect node owners and ourselves?
  • Hosting - How are we hosting and what does it cost?
  • Backup - How do we handle backups?
  • Server Security - How do we ensure server security?

Logistics

  • Meeting Minutes - Notes from our weekly meetings dating back to January 2013.
  • Taxes - Filed taxes for the sudo mesh non-profit

Research

Our Projects

Building a community-owned and -operated wireless mesh network in Oakland, California and beyond!

Disaster-resilient communications network powered by the sun.

Instructions for building your own internet, plus a global directory of community wireless mesh networks.

Upcycling retired/donated laptops to those who can't afford them.

How To Participate

If you want to join the mesh you'll need a mesh router at your home! Currently the best way to get one is to show up at our monthly general meeting as described above. We need more people on the network to improve the quality of the service. When you setup a node, you improve the service for everybody on the network and give more access to your community. We encourage participants to ask their communities to join their networks and create distributed services for them. We have a user guide to help you get on the network!

  • Chat with us on RocketChat, the #peoplesopen channel in Secure Scuttlebutt, or on IRC: #peoplesopen.net (see also IRC Intro)
  • Join the email list
  • We have weekly meetings every Tuesday from 7:30-9pm at sudo room from 8-9pm via Jitsi. We have focus groups and collaborate on different parts of the project - from design to software development, documentation to hardware hacking, community outreach and climbing rooftops to mount nodes!
  • Come to our weekly Tuesday meetings in sudo room cyberspace. The quarantine format is much more relaxed, and we welcome newcomers! The first three Tuesdays of the month are hack nights where we work (often in parallel) on everything from pamphlets to maps to code. This is a good opportunity to find someone familiar with the ins and outs and ask questions. The last Tuesday of the month is a more structured recap meeting, where we follow an agenda, get updates on what progress was made in the last month, and plan for the next month.
  • We generally collaborate on notes at each meeting. Look at our archive of past meeting minutes!
  • Contribute to the network by installing a mesh node at your location using our handy Mesh Node Setup Walkthrough. This is especially helpful for those who are within range of an existing node (seen as a wireless SSID named "peoplesopen.net").
  • Check out our ToDo list
  • Support us with a small monthly donation on Patreon, here's how we spend it.
  • Send bitcoins to our wallet address: 12RxU4DpLpdWcmEBn7Tj325CCXBwt5i9Hc
  • Check out our wishlist, we have requests!
  • Improve our documentation
  • Talk to your community about joining the mesh - here are some resources for doing so!
  • Follow us on twitter and like us on facebook.

Developers

We need hardware and software engineers to help us with our code. We have an overview of technical documentation that will be helpful in understanding the network.

If you want to immediately help, check out our code, look at our remaining issues for upcoming milestones, report any bugs or help us squish them!

Here are some of the projects that need attention:

Designers

We need artists and designers to make things look nice! We have design schemes we already use, but we're always looking to improve it. We need to improve our presentation content and diagrams too! We've been focused on these areas:

  • Mesh/Presentations - Past presentations, talks, workshops, tutorials and videos
  • Diagrams - Diagrams outlining the network topology and technical stack
  • Design - Website & logo design; swag for enthusiasts; and marketing inspiration.

Please note that all contributions to Sudo Room may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here. You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Sudo Room:Copyrights for details). Do not submit copyrighted work without permission!