A Python 3.13 async tool that scans WiFi networks using iw and stores data in InfluxDB. Supports modern WiFi 6/6E networks with comprehensive network analysis and production-ready reliability features.
- WiFi Scanning: Collects SSID, signal strength, encryption, channel, band (2.4/5/6 GHz), and WiFi 6/6E capabilities
- InfluxDB Integration: Async batch writing with circuit breaker and retry logic for reliability
- Auto Interface Detection: Automatically finds and selects the best wireless interface
- Production Ready: Built for long-running deployments with comprehensive error handling
- Docker with
NET_ADMINcapability - InfluxDB 2.x instance
- Linux system with wireless interface
Set these environment variables:
WIFISCAN_COLLECTOR_INFLUXDB_TOKEN=your-token-here
WIFISCAN_COLLECTOR_INFLUXDB_ORG=your-org
WIFISCAN_COLLECTOR_INFLUXDB_URL=http://influxdb:8086 # optionalSee docs/configuration.md for all configuration options.
# Create .env file with your settings
cp .env.example .env
# Run with Docker Compose
docker-compose up -dservices:
wifiscan-collector:
image: lux4rd0/wifiscan-collector:latest
cap_add:
- NET_ADMIN
network_mode: host
env_file:
- .env
restart: unless-stoppedSee docs/development.md for Python installation instructions.
Common issues:
- Permission denied: Ensure container has
NET_ADMINcapability - Interface not found: Use
ip link showto verify interface name - InfluxDB connection: Check token, organization, and URL
Debug mode:
export WIFISCAN_COLLECTOR_LOG_LEVEL=DEBUG
docker logs -f wifiscan-collectorSee docs/troubleshooting.md for comprehensive troubleshooting.
- Configuration Guide - Complete configuration reference and examples
- Development Guide - Setup, testing, and contribution guidelines
- Troubleshooting Guide - Detailed problem-solving procedures
AGPL-3.0 License - see LICENSE file for details.