Network Scanner Web App

A comprehensive network scanning and device management web application that runs in a Docker container. This app scans your network, identifies devices, tracks connection speeds, and allows you to manage device information.

Features

  • 🔍 Network Scanning: Automatically discovers devices on your network
  • 📱 Device Detection: Identifies IP addresses, MAC addresses, hostnames, and device types
  • Connection Speed Monitoring: Tests and tracks connection speeds for each device
  • 🔄 Automatic Updates: Connection speeds are refreshed every 30 minutes automatically
  • ✏️ Device Management: Edit and update device information manually
  • 💾 Persistent Storage: All device information is stored in a database
  • 🐳 Docker Ready: Easy deployment with Docker and Docker Compose

Quick Start

  1. Clone or download the repository
  2. Build and run with Docker Compose:
    docker-compose up -d
  3. Access the web interface:
    Open your browser and navigate to http://localhost:8100

Dashboard Preview

Network Scanner Dashboard

Usage

Scanning Your Network

  • Click the "Scan Network" button to discover devices
  • Optionally specify a network range (e.g., 192.168.1.0/24) or leave empty for auto-detection
  • The scan will discover all active devices and add them to the database

Managing Devices

  • View Devices: Display cards with IP/MAC, type, manufacturer, speed, timestamp, and notes.
  • Edit Device: Update hostname, type, vendor, OS, and notes.
  • Delete Device: Remove devices from the list.

Connection Speed Testing

  • Manual Update: Click "Update Speeds" to manually test all devices.
  • Automatic Updates: Occur every 30 minutes.
  • Speed history is stored and viewable via API.

Technical Details

API Endpoints

Devices

  • GET /api/devices/
  • GET /api/devices/{id}
  • PUT /api/devices/{id}
  • DELETE /api/devices/{id}
  • GET /api/devices/{id}/speed-history

Scanning

  • POST /api/scan/
  • POST /api/scan/update-speeds

Configuration

Environment Variables:

DATABASE_URL: sqlite:///./data/network_scanner.db

Docker Configuration:

  • Privileged mode: Required for scanning
  • Host network mode: Allows network access
  • Volume mount: Data stored in ./data