Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revisionBoth sides next revision
google-season-of-docs [2020/05/20 21:10] – [Project 4: showcase OpenWrt features] misc zorungoogle-season-of-docs [2020/06/08 14:58] – added batman and maint/upgrade ops for remote routers steve-newcomb
Line 7: Line 7:
 ====== Project Ideas ====== ====== Project Ideas ======
  
-===== Project 1: Sub-project specific documentation =====+===== Project 1: Documentation for OpenWrt components =====
  
-OpenWrt is based on multiple sub projects, all developed in different +The OpenWrt system is based on several core components, all developed in different code repositories. Each component has documentation that is mainly targeted at OpenWrt developers, but can also be used by "downstream projects" that use, modify and repackage OpenWrt to suit their needs.  The documentation of these components is either non-existent, available as simple README, or maintained on the OpenWrt wiki/website.
-repositories. The documentation for them is mostly found in MediaWiki on +
-the OpenWrt main website. Keeping both in sync is not trivial due to very +
-tooling. This project idea propose the transfer and extension of existing +
-documentation to the sub-projects repositories. Having both code and +
-documentation in the same repository has two big advantages over the current +
-approach:+
  
-  * Existing developers can use the same workflow to update and review documentation as they use for code.+The goal of the project is to improve documentation of OpenWrt components by making it more consistent and useful:
  
 +  - choose a documentation system (mkdocs, sphinx...) that will be applied consistently to all components
 +  - transfer all documentation related to each component directly into the code repository of the component
 +  - setup a system that builds all components documentation and makes the result easily available in a single place
 +  - reorganize / improve each component documentation to improve consistency and readability
 +
 +It is not required to have a deep technical knowledge of the components.  However, in the first part of the project, the applicant will need to get familiar with the overall picture of these components.
 +
 +Having both code and documentation in the same repository has two big advantages over the current approach:
 +
 +  * Existing developers can use the same workflow to update and review documentation as they use for code.
   * New developers find latest documentation next to the code, instead of finding it on some external website.   * New developers find latest documentation next to the code, instead of finding it on some external website.
  
-Code documentation from the wikis technical reference would be converted to 
-Markdown format and stored in the repository. A documentation render engine 
-like `mkdocs` would be introduced to offer a webpage per project. The current 
-wiki would list those documentation websites. 
  
 === Related material === === Related material ===
  
-  * The to be individually documented projects are found on https://git.openwrt.org/. All repository starting with */project* are sub-projects of OpenWrt+  * [[commit>?a=project_list;pf=project|Git repositories of all components]] 
- +  * [[:docs:techref:architecture|OpenWrt architecture]] (not complete) 
-  * Some of the projects are already documented in the current wiki https://openwrt.org/docs/techref/start+  * [[:docs:techref:start|Technical reference pages]] on the wiki
  
 ===== Project 2: Refresh documentation for device installations ===== ===== Project 2: Refresh documentation for device installations =====
Line 83: Line 83:
  
   * detailed monitoring of LAN traffic with nlbwmon or vnstat   * detailed monitoring of LAN traffic with nlbwmon or vnstat
-  * multi-WAN setup with mwan3+  * setting up a mobile connection (4G) as backup
   * DNS filtering, similar to Pi-hole   * DNS filtering, similar to Pi-hole
   * decentralized Wi-Fi controller between several Wi-Fi access points with Dawn   * decentralized Wi-Fi controller between several Wi-Fi access points with Dawn
   * local file-sharing setup (USB disk shared with Samba/CIFS/NFS)   * local file-sharing setup (USB disk shared with Samba/CIFS/NFS)
-  * run applications in LXC containers 
   * VPN client/hotspot: force all LAN devices (Wi-Fi or wired) to go through a VPN   * VPN client/hotspot: force all LAN devices (Wi-Fi or wired) to go through a VPN
   * VPN server: connect remote clients to your LAN network   * VPN server: connect remote clients to your LAN network
 +  * improving performance of low-end Internet connections by using SQM to avoid bufferbloat
 +  * simple multi-WAN setup with mwan3
 +  * advanced multi-WAN setup using MPTCP/shadowsocks or glorytun, possibly based on downstream openmptcprouter project
 +  * run applications in LXC containers
 +  * community mesh network using B.A.T.M.A.N.
 +  * maintenance/upgrade ops for remote routers: make menuconfig, /files/; reverse ssh tunneling; DDNS setup; emailing log reports; backups
  
 === Related material === === Related material ===
Line 99: Line 104:
   * [[docs:guide-user:services:nas:cifs.server|Samba documentation]] for file-sharing on a LAN   * [[docs:guide-user:services:nas:cifs.server|Samba documentation]] for file-sharing on a LAN
   * [[docs:guide-user:services:vpn:wireguard:start|WireGuard VPN documentation]]   * [[docs:guide-user:services:vpn:wireguard:start|WireGuard VPN documentation]]
 +  * [[https://www.open-mesh.org/projects/batman-adv/wiki/Batman-adv-openwrt-config#Batman-adv-201300-till-20190-2]]
 +
 +===== Project 5: Improve first-time user experience =====
 +
 +OpenWrt can be challenging for new users: is my hardware supported? which version of OpenWrt should I use? can i use snapshots? how do I install OpenWrt? what are all these strange "apm821xx" and "ar71xx" things on the download page? how can I upgrade my router?
 +
 +The idea of the project is to identify the main hurdles encountered by first-time users, and solve these hurdles to improve the first-time user experience:
 +
 +  * if the necessary resources already exist (e.g. Table of Hardware, quick start page), make them more visible or improve them
 +  * if the necessary resources don't exist, create them
 +
 +The proposed solution could include a "Landing page" for the OpenWrt website with the necessary information and guidance.
 +
 +=== Related material ===
 +
 +  * [[supported_devices|Supported devices / Table of Hardware]]
 +  * [[downloads|Download page]]
 +  * [[docs:guide-quick-start:start|Quick start]]
 +  * [[docs:guide-quick-start:factory_installation|Factory install: First-time installation on a device]]
 +  * See also Project 2 (for installation) and Project 3 (for basic web interface usage)
  • Last modified: 2020/06/08 17:07
  • by zorun