Difference between revisions of "Mesh/ToDos"

1,302 bytes added ,  06:04, 25 June 2018
updated ToDos
(updated ToDos)
Line 8: Line 8:
The purpose of this page is to provide an overview over features we want for the next milestones. We also track feature requests and bugs on [https://github.com/sudomesh/sudowrt-firmware/issues the github issue tracker].
The purpose of this page is to provide an overview over features we want for the next milestones. We also track feature requests and bugs on [https://github.com/sudomesh/sudowrt-firmware/issues the github issue tracker].


=Software=
=Community Outreach ToDos=
= Web UI =
*Outreach to churches with succinct argument [cite examples, e.g.; Sandy relief]
*Poster/flyer at local coffeeshops, bikeshops, co-ops, collectives, community resource spaces, etc;
*Walkabouts/canvassing in E Oakland, Berkeley, Downtown Oakland
*Find folks in El Cerrito / Albany who can help us link up to the Internet Archive's Richmond node
*See if people in school system want to work with us to ensure every student has home connectivity - talk to Hilary
*Convince libraries to share their connectivity - talk to Ivan
*Conduct User Research on what sorts of [[Mesh/MeshApps|Local Services]] people would like to have - see [[Mesh/UserResearch]]
*Write up a compelling argument for mesh re: disaster preparedness - see [https://jennyryan.net/occupy-sandy-a-model-for-grassroots-community-disaster-relief/ Jenny's post on Occupy Sandy]
*[https://sudoroom.org/wiki/Mesh/Presentations Presentations / talks / events promo]
 
=Operational Logistics=
*[https://sudoroom.org/wiki/Mesh/Funding#Sustainable_Business_Models Business models]
*Make a project roadmap - see [https://sudoroom.org/wiki/Mesh/17_Feb_2018 Strategic Planning Meeting Notes]
*[https://sudoroom.org/wiki/Mesh/Funding Grants and other funds we can apply for]
*<s>Financials [current and projected] [Jenny, you?]</s>
*<s>Tax status (set up 501c3) [Marc, Matt, Jenny]</s>


Should we split the dashboard into an unprivileged view-only dashboard and an admin interface that requires login and allow access to the admin only via the private wifi interface (the way it is now) but allow access to the dashboard via either? How hard would this be?
=Marketing / Branding=
*Blog posts - continual, errybody!
*Articles & Research
*Photo album (currently a mix of GDrive, RocketChat, and the blog)
*Design 'pods' for the outdoor routers [eg; birdhouses, planterboxes]
*Infographics, flyers, propaganda - add to our [https://github.com/sudomesh/propaganda propaganda repo]
*Videos
*Bios, titles and photos of team members - (do we actually want this? -jnny)


=Software=
== Dashboard ==
== Dashboard ==
We want:
We want:
* Node counts (server side done)
* Node counts (server side done)
Line 27: Line 49:


== Admin ==
== Admin ==
We want:
We want:
* Change wifi channel for each radio
* Change wifi channel for each radio
Line 39: Line 60:


== Extender node UI ==
== Extender node UI ==
[[User:Redconfetti|redconfetti]] is working on [https://github.com/sudomesh/ubus-https-forwarder ubus-https-forwarder] which will allow us access to dashboard info and web admin for the extender nodes via the main home node UI.
[[User:Redconfetti|redconfetti]] is working on [https://github.com/sudomesh/ubus-https-forwarder ubus-https-forwarder] which will allow us access to dashboard info and web admin for the extender nodes via the main home node UI.


Line 54: Line 74:
* Change wifi transmit power
* Change wifi transmit power


= Home node owner's manual =
== Make makenode simpler ==
 
'''@paidforby has been working on this! See [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 sudowrt v.0.3.0] and [https://github.com/sudomesh/sudowrt-firmware/blob/master/files/opt/mesh/autoconf autoconf]!
We need one to include with each node!
'''
* See [[User:jhpoelen|jhpoelen]]'s [https://github.com/sudomesh/babeld-lab/blob/master/operator_manual.md Node Operator's Manual]!
 
= Make makenode simpler =
@paidforby has been working on this! See [https://github.com/sudomesh/sudowrt-firmware/releases/tag/0.3.0 sudowrt v.0.3.0] and [https://github.com/sudomesh/sudowrt-firmware/blob/master/files/opt/mesh/autoconf autoconf]!
 
Make it ask:
Make it ask:
* What is the name of person owning this node (Won't be publicly shared)?  
* What is the name of person owning this node (Won't be publicly shared)?  
Line 72: Line 87:
Auto-generate everything else.
Auto-generate everything else.


= Email automation =
== Email automation ==
 
Emails we want to send:
Emails we want to send:
* Initial email with all your node info sent by makenode on node creation. Ask the user if they want to exclude passwords.
* Initial email with all your node info sent by makenode on node creation. Ask the user if they want to exclude passwords.
* Congratulations email when new node is connected and meshing via Internet
* Congratulations email when new node is connected and meshing via Internet
Line 82: Line 95:
** Repeat reminders after e.g. 1 week, 1 month and 1 year
** Repeat reminders after e.g. 1 week, 1 month and 1 year


= Sticker printing on node creation =
== Sticker printing on node creation ==
 
Print a sticker with basic info:
Print a sticker with basic info:
* Admin interface
* Admin interface
* Admin username + password
* Admin username + password
Line 94: Line 105:
We have the code for this, we just need to attach it to makenode.
We have the code for this, we just need to attach it to makenode.


= Stickers indicating what each port does =
=Design=
 
== Stickers indicating what each port does ==
* Extender ports (color: rainbow red+green+yellow?)
* Extender ports (color: rainbow red+green+yellow?)
* Private port (color: red?)
* Private port (color: red?)
Line 105: Line 116:
The stickers should have text as well as the colors.
The stickers should have text as well as the colors.


= Community support forum =
=Community Outreach ToDos=
*Outreach to churches with succinct argument [cite examples, e.g.; Sandy relief]
*Poster/flyer at local coffeeshops, bikeshops, co-ops, collectives, community resource spaces, etc;
*Walkabouts/canvassing in E Oakland, Berkeley, Downtown Oakland
*Find folks in El Cerrito / Albany who can help us link up to the Internet Archive's Richmond node
*See if people in school system want to work with us to ensure every student has home connectivity - talk to Hilary
*Convince libraries to share their connectivity - talk to Ivan
*Conduct User Research on what sorts of [[Mesh/MeshApps|Local Services]] people would like to have - see [[Mesh/UserResearch]]
*Write up a compelling argument for mesh re: disaster preparedness - see [https://jennyryan.net/occupy-sandy-a-model-for-grassroots-community-disaster-relief/ Jenny's post on Occupy Sandy]
*[https://sudoroom.org/wiki/Mesh/Presentations Presentations / talks / events promo]
* Community support forum - We should set one up!


We should set one up!
=Operational Logistics=
*[https://sudoroom.org/wiki/Mesh/Funding#Sustainable_Business_Models Business models]
*Make a project roadmap - see [https://sudoroom.org/wiki/Mesh/17_Feb_2018 Strategic Planning Meeting Notes]
*[https://sudoroom.org/wiki/Mesh/Funding Grants and other funds we can apply for]
*<s>Financials [current and projected] [Jenny, you?]</s>
*<s>Tax status (set up 501c3) [Marc, Matt, Jenny]</s>


Maybe [[User:Tunabananas|tunabananas]] wants to take this on?
=Marketing / Branding=
*Blog posts - continual, errybody!
*Articles & Research
*Photo album (currently a mix of GDrive, RocketChat, and the blog)
*Design 'pods' for the outdoor routers [eg; birdhouses, planterboxes]
*Infographics, flyers, propaganda - add to our [https://github.com/sudomesh/propaganda propaganda repo]
*Videos
*Bios, titles and photos of team members - (do we actually want this? -jnny)


--
=Operational Logistics=
marc/juul
*[https://sudoroom.org/wiki/Mesh/Funding#Sustainable_Business_Models Business models]
*Make a project roadmap - see [https://sudoroom.org/wiki/Mesh/17_Feb_2018 Strategic Planning Meeting Notes]
*[https://sudoroom.org/wiki/Mesh/Funding Grants and other funds we can apply for]
*<s>Financials [current and projected] [Jenny, you?]</s>
*<s>Tax status (set up 501c3) [Marc, Matt, Jenny]</s>


= Support proprietary extender nodes =
=Marketing / Branding=
*Blog posts - continual, errybody!
*Articles & Research
*Photo album (currently a mix of GDrive, RocketChat, and the blog)
*Design 'pods' for the outdoor routers [eg; birdhouses, planterboxes]
*Infographics, flyers, propaganda - add to our [https://github.com/sudomesh/propaganda propaganda repo]
*Videos
*Bios, titles and photos of team members - (do we actually want this? -jnny)


== Support proprietary extender nodes ==
Minimal feature set:
Minimal feature set:
* Manual for how to use the Ubiquiti web UI to set up each node in a point to point or point to multipoint link
* Manual for how to use the Ubiquiti web UI to set up each node in a point to point or point to multipoint link
** Needs one in WDS station and one in WDS master (access point) mode with the ethernet bridged to the wifi
** Needs one in WDS station and one in WDS master (access point) mode with the ethernet bridged to the wifi
Line 124: Line 168:


Nice to have:
Nice to have:
* Auto-detection and configuration of AirOS  
* Auto-detection and configuration of AirOS  
** SSH  
** SSH  
* Detect and show which model router is connected using dashboard
* Detect and show which model router is connected using dashboard


= Removing our root access =
== Removing our root access ==
 
Having root access mesh nodes means that we can potentially listen in on traffic on the _private_ router used by the node operator. That is: The router they use for their internet connection. This can be done by spoofing MAC addresses or using ARP flooding. That's bad. We don't want this power. How do we get rid of it.
Having root access mesh nodes means that we can potentially listen in on traffic on the _private_ router used by the node operator. That is: The router they use for their internet connection. This can be done by spoofing MAC addresses or using ARP flooding. That's bad. We don't want this power. How do we get rid of it.


We only need root access to nodes for three reasons:
We only need root access to nodes for three reasons:
* To upgrade the firmware
* To upgrade the firmware
* Remote password reset for people who forgot their password
* Remote password reset for people who forgot their password
Line 146: Line 187:


== Firmware upgrade ==
== Firmware upgrade ==
We should distribute signed .ipk packages and sometimes sysupgrade images. The clients will download them (to begin with from a central repository), verify and either install or wait for the user to authorize the install.
We should distribute signed .ipk packages and sometimes sysupgrade images. The clients will download them (to begin with from a central repository), verify and either install or wait for the user to authorize the install.


Line 154: Line 194:


== Diagnostic / debugging ==
== Diagnostic / debugging ==
We want access to:
We want access to:
* babeld -i
* babeld -i
* notdhcpserver -i
* notdhcpserver -i
Line 176: Line 214:
It would be _really_ useful if someone specifically asks us to help them out. This feature should not allow granting of temporary ssh access to anyone else since that would equate web admin access to root access which we do not want (web admin access should be seen as a relatively low security thing as it doesn't allow you to e.g. install malicious code).
It would be _really_ useful if someone specifically asks us to help them out. This feature should not allow granting of temporary ssh access to anyone else since that would equate web admin access to root access which we do not want (web admin access should be seen as a relatively low security thing as it doesn't allow you to e.g. install malicious code).


= Firewall rule rewrite and security test =
== Firewall rule rewrite and security test ==
 
See [https://github.com/sudomesh/sudowrt-firmware/issues/96 this issue].
See [https://github.com/sudomesh/sudowrt-firmware/issues/96 this issue].


Line 183: Line 220:


= Nice to have =
= Nice to have =
These are features we'd like to have but will only add if we feel like we have time.
These are features we'd like to have but will only add if we feel like we have time.


== "What is this?" sticker ==
== "What is this?" sticker ==
A big sticker that covers a large part of the home node with an attention-catching message and an explanation in smaller text. Not everyone will want to stick it on their router but if people agree to put it on their node and the node is publicly visible then the node will be its own advertisement.
A big sticker that covers a large part of the home node with an attention-catching message and an explanation in smaller text. Not everyone will want to stick it on their router but if people agree to put it on their node and the node is publicly visible then the node will be its own advertisement.


== A way for node operators to directly contact each other without revealing email addresses ==
== A way for node operators to directly contact each other without revealing email addresses ==
Is there an easy way to do this?
Is there an easy way to do this?


== Web UI for makenode ==
A web UI where people can sign up for a node. This UI should advise them that they will need to come by sudo room on a Tuesday at 7:30 pm to pick up their node.
We could hand out invite codes to this. E.g: We give each of our friends 10 invite codes.
If this UI could combine the .ipk generated by makenode with the firmware and allow you to download a firmware file then that would be just awesome!
== Extender node installation manual ==
Both software setup + physical mounting, running and crimping cable.
'''Update June 2018: Working on this on various fronts. See [https://github.com/sudomesh/mounting Mounting] and [https://buildyourowninter.net Build Your Own Inter.net] for starters!
'''
== Allow proprietary extender nodes to link to sudowrt extender nodes ==
== Allow proprietary extender nodes to link to sudowrt extender nodes ==
Since proprietary extender nodes can only operate in client wds or master wds modes that means we'd have to add both a client wds and master wds interface to each extender node. These can be bridged together and need to have babeld enabled. We might then also consider doing the same on home nodes. The first thing to do is test if e.g. a ubiquiti stock firmware 802.11ac device will even connect to an openwrt wds device.  
Since proprietary extender nodes can only operate in client wds or master wds modes that means we'd have to add both a client wds and master wds interface to each extender node. These can be bridged together and need to have babeld enabled. We might then also consider doing the same on home nodes. The first thing to do is test if e.g. a ubiquiti stock firmware 802.11ac device will even connect to an openwrt wds device.  


== A way to prioritize/round-robin routes to the internet ==
== A way to prioritize/round-robin routes to the internet =
 
If you have two equally viable routes to the internet and the node is always picking the wrong one have a way to give one of them higher priority permanently. If possible make it round-robin the routes for each connection (this should be ok because it's all going to the same VPN).
If you have two equally viable routes to the internet and the node is always picking the wrong one have a way to give one of them higher priority permanently. If possible make it round-robin the routes for each connection (this should be ok because it's all going to the same VPN).
=Community Outreach ToDos=
*Outreach to churches with succinct argument [cite examples, e.g.; Sandy relief]
*Poster/flyer at local coffeeshops, bikeshops, co-ops, collectives, community resource spaces, etc;
*Walkabouts/canvassing in E Oakland, Berkeley, Downtown Oakland
*Find folks in El Cerrito / Albany who can help us link up to the Internet Archive's Richmond node
*See if people in school system want to work with us to ensure every student has home connectivity - talk to Hilary
*Convince libraries to share their connectivity - talk to Ivan
*Conduct User Research on what sorts of [[Mesh/MeshApps|Local Services]] people would like to have - see [[Mesh/UserResearch]]
*Write up a compelling argument for mesh re: disaster preparedness - see [https://jennyryan.net/occupy-sandy-a-model-for-grassroots-community-disaster-relief/ Jenny's post on Occupy Sandy]
*[https://sudoroom.org/wiki/Mesh/Presentations Presentations / talks / events promo]
=Operational Logistics=
*[https://sudoroom.org/wiki/Mesh/Funding#Sustainable_Business_Models Business models]
*Make a project roadmap - see [https://sudoroom.org/wiki/Mesh/17_Feb_2018 Strategic Planning Meeting Notes]
*[https://sudoroom.org/wiki/Mesh/Funding Grants and other funds we can apply for]
*<s>Financials [current and projected] [Jenny, you?]</s>
*<s>Tax status (set up 501c3) [Marc, Matt, Jenny]</s>
=Marketing / Branding=
*Blog posts - continual, errybody!
*Articles & Research
*Photo album (currently a mix of GDrive, RocketChat, and the blog)
*Design 'pods' for the outdoor routers [eg; birdhouses, planterboxes]
*Infographics, flyers, propaganda - add to our [https://github.com/sudomesh/propaganda propaganda repo]
*Videos
*Bios, titles and photos of team members - (do we actually want this? -jnny)
1,196

edits