A collection of documentation for WLAN Pi developers and contributors.
New to WLAN Pi development? Start here:
- Getting Started - Set up your environment and make your first contribution
- Git Workflow Guide - Git fundamentals (if you're new to Git)
- Contributing - Detailed workflow guidelines
- Packaging Example - Create your first package
To set up a WLAN Pi device for development (requires curl and sudo):
curl -vfSL http://wlanpi.us/install | sudo bash| Document | Description |
|---|---|
| Getting Started | Development environment setup and first contribution guide |
| Git Workflow Guide | Git fundamentals for beginners |
| Contributing | Detailed Git workflow, branch naming, PR guidelines, and code review |
| Packaging Example | Complete walkthrough of creating a Debian package from scratch |
| Document | Description |
|---|---|
| Release Process | Tagging, versioning, and deployment procedures |
| Document | Description |
|---|---|
| Filesystem Hierarchy | Directory structure standards (/opt, /etc, /var) |
| Debian Packaging | Packaging policy and required files |
| Document | Description |
|---|---|
| Contributing Style | See CONTRIBUTING.md |
| Python | Python coding standards |
| Packaging Style | See architecture/PACKAGING.md |
| Anti-patterns | Common mistakes to avoid |
| Debchange | Changelog formatting |
| Developer Workflow | Development process standards |
| Manpages | Creating and generating manpages for WLAN Pi applications |
| Document | Description |
|---|---|
| Development Setup | Detailed environment setup |
| IDE Setup | IDE configuration |
| Developing on Windows | Windows/WSL development guide |
| Update from Dev Branch | Testing dev packages |
| VSC Remote-SSH | VS Code troubleshooting |
| Document | Description |
|---|---|
| Licensing | Project licensing policy (BSD-3-Clause) |
| Document | Description |
|---|---|
| Code of Conduct | Community standards |
We welcome your feedback. Feel free to open an issue with suggestions and rationale for any proposed changes.
External resources for learning:
- GitHub Git Guide - Official GitHub resources
- Oh Shit, Git!?! - Practical Git problem solving
- Git from the Bottom Up - Deep Git internals
- Pro Git - Comprehensive free Git reference
- Debian New Maintainers' Guide - Debian packaging
- Debian Policy Manual - Authoritative Debian packaging standards
- dh-virtualenv Documentation - Python packaging tool
- Python Packaging User Guide - Modern Python packaging with pyproject.toml
- pip-tools Documentation - Dependency pinning via requirements.in / requirements.txt
- ruff Documentation - Linter and formatter used in new WLAN Pi projects
- pytest Documentation - Testing framework used across WLAN Pi projects
- FastAPI Documentation - Web framework used in wlanpi-core
- SQLAlchemy Documentation - Async ORM used in wlanpi-core
- Authlib Documentation - OAuth and JWT library used in wlanpi-core
- Scapy Documentation - Packet manipulation used in wlanpi-profiler and wlanpi-ctx
- TextFSM Documentation - CLI output parsing used in wlanpi-fpms
- piwheels - Pre-built Python wheels for Raspberry Pi
- htmx Documentation - HTML-driven interactivity used in wlanpi-webui
- websockets Documentation - WebSocket library used in wlanpi-core
- MDN WebSockets API - WebSocket protocol reference
- Linux Filesystem Hierarchy Standard - FHS 3.0
- Linux Namespaces - Network namespace isolation used in wlanpi-core
- systemd - Service manager used by all WLAN Pi packages
- dbus-python Documentation - IPC used for Linux service communication
- nginx Documentation - Reverse proxy used by wlanpi-core
- BlueZ Documentation - Linux Bluetooth stack used in wlanpi-bluetooth
- lldpd - LLDP/CDP daemon used for neighbor detection in wlanpi-common
- Raspberry Pi Documentation - Hardware platform reference
- Raspberry Pi Pinout: UART - UART pin reference
- Raspberry Pi Pinout: I2C - I2C pin reference
- Linux Wireless Documentation - Kernel wireless subsystem docs
- Linux Wireless Wiki - cfg80211, mac80211, nl80211 kernel subsystem docs
- nl80211 Netlink API - Kernel nl80211 netlink interface
- Linux Wireless Mailing List - Upstream kernel wireless development
- hostap Project - Upstream source for hostapd and wpa_supplicant
- hostapd Documentation - AP daemon used and patched in wlanpi-profiler
- wpa_supplicant Documentation - Supplicant used for station-mode connections
- iw Documentation - Userspace nl80211 configuration tool
- iwlwifi Documentation - Intel wireless driver
- ath Driver Documentation - Qualcomm/Atheros driver family
- MediaTek mt76 Driver - MediaTek wireless driver
- morrownr USB WiFi - USB Wi-Fi adapter compatibility and driver reference
- WikiDevi - Wireless hardware database and NIC identification
- IEEE 802.11 Working Group - Standards body, drafts, and meeting documents
- IEEE 802.11 Timelines - Amendment status and publication dates
- IEEE GET Program - Free access to selected IEEE 802.11 standards
- Wi-Fi Alliance - Certification programs and technical specifications
- Wireshark Wiki - Packet analysis reference
- Wireshark Source - Wireshark source code
- tcpdump - Packet capture reference
- Kismet - Wireless network detector and sniffer
- Scandump - Wireless scan dump tool
- Grafana Documentation - Dashboard platform used in wlanpi-grafana
- ShellCheck - Shell script static analysis
- explainshell - Explain any shell command interactively
- regexr - Regular expression testing and reference
- JSONLint - JSON validator
- Terminal Trove TUI - Catalogue of TUI applications
- tmux Wiki - Terminal multiplexer
- vim - Text editor