LanGuard

LanGuard

Docker app from TeeCodeDev's Repository

Overview

LanGuard is a modern, self-hosted network visibility and monitoring tool for discovering, organizing, and tracking devices on your local network (LAN).

NOTE: Coordinated 3-Container Setup
LanGuard runs as a coordinated 3-service stack using host networking:

  1. LanGuard (this template): Next.js web frontend & Caddy reverse proxy on port 8080.
  2. LanGuard-Backend: Django REST API, background worker, and SQLite database on port 8000.
  3. LanGuard-Scanner: Layer 2 ARP scanner, port prober, and task scheduler.
    Make sure to install LanGuard-Backend and LanGuard-Scanner alongside this template, or deploy via Unraid's Docker Compose Manager using upstream's docker-compose.yaml.

Key Features:

  • Automated Device Discovery: Discovers IPv4 devices, vendors, MAC addresses, open ports, and active network services.
  • State & History Tracking: Monitors online/offline availability, IP changes, and device attention alerts.
  • Inventory Organization: Organize devices by room, role, custom icon, and notes (regular, visitor, IoT, archived).
  • SNMP & DNS Integrations: Discovers switches, APs, and printers via read-only SNMP v2c. Integrates with AdGuard Home, Pi-hole, Technitium, Speedtest Tracker, and HomeBox.
  • Multi-Channel Alerts: Instant notifications to Discord, Telegram, ntfy, or custom webhooks when unknown devices appear.
  • Wake-on-LAN: Wake asleep devices directly from the web interface.

Initial Setup:

  1. Install LanGuard-Backend first and configure a shared [inline]SECRET_KEY[/inline].
  2. Install LanGuard-Scanner using the same [inline]SECRET_KEY[/inline].
  3. Install LanGuard (Frontend) and open [inline]http://[IP]:8080[/inline] to create your admin account.

Credits & Support:

LanGuard logo

LanGuard

Self-hosted network visibility for discovering, organizing, and monitoring devices on your LAN.

Latest version Docker pulls Donate through PayPal

Documentation · Installation · Integrations · Troubleshooting · Releases

LanGuard builds a clear inventory of local network devices, tracks availability and network changes, and surfaces equipment that needs attention. It is designed for home and small-business networks and can run continuously as a Docker web application or locally as a native macOS scanner.

Highlights

  • Discover IPv4 devices, names, vendors, MAC addresses, services, and common open ports.
  • Optionally inventory managed switches, access points, printers, interfaces, and LLDP neighbor hints through read-only SNMP v2c.
  • Track online state, scan history, IP changes, availability, and attention findings.
  • Organize regular, visitor, and archived devices by room, role, icon, and notes.
  • Send Discord, Telegram, ntfy, or signed automation webhook notifications.
  • Connect AdGuard Home, Pi-hole, or Technitium DNS Server for DNS context, plus Speedtest Tracker and HomeBox.
  • Run scheduled scans, on-demand detailed port scans, and Wake-on-LAN actions.
  • Install the Docker interface as a web app on supported phones, tablets, and computers.
  • Inventory running containers and published ports from the local Docker engine through the scheduler.

Preview

LanGuard dashboard with fictional device data

Quick Start

The recommended deployment uses Docker Compose or Portainer on a trusted host with direct access to the network being scanned.

git clone https://github.com/hillaliy/LanGuard.git
cd LanGuard

Before deployment, edit docker-compose.yaml:

  1. Replace SECRET_KEY in the backend and scanner with the same long random value.
  2. Add the Docker host IP or hostname to ALLOWED_HOSTS while keeping 127.0.0.1.
  3. Start the stack:
docker compose up -d

Open http://<docker-host-ip>:8080 and create the first account. The first account becomes the administrator; LanGuard has no default password.

LanGuard uses host networking and privileged discovery because ARP scanning requires direct Layer 2 access to the LAN. Review the Compose file before deployment and use a dedicated, trusted host.

For Portainer instructions, custom ports, VLAN requirements, updates, backups, and migration, use the complete installation documentation.

Editions

Edition Best for Guide
Docker web app Continuous scanning, shared access, integrations, and notifications Installation
Native macOS scanner A self-contained inventory and scanner on one Mac macOS Scanner

The editions do not synchronize their inventories.

Documentation

The public documentation is the source of truth for setup and operation:

Update

Update all three Docker services together without removing the database volume:

docker compose pull
docker compose up -d --force-recreate

Review the release notes before updating across multiple versions.

API

Docker installations expose interactive API documentation through the LanGuard server:

  • Swagger: /api/schema/swagger/
  • ReDoc: /api/schema/redoc/
  • OpenAPI schema: /api/schema/

Contributing

Development setup, checks, and release instructions are documented in CONTRIBUTING.md. User-facing behavior should update the public documentation in the same pull request.

License

Copyright © 2026 Yossi Hillali.

LanGuard is licensed under the Apache License 2.0. Third-party components remain subject to their respective licenses.

Media gallery

Requirements

LanGuard-Backend, LanGuard-Scanner

Related apps

Details

Repository
ghcr.io/hillaliy/languard-frontend:latest
Last Updated2026-10-23
First Seen2026-10-23

Runtime arguments

Web UI
http://[IP]:8080/
Network
host
Shell
sh
Privileged
false

Template configuration

Frontend Listen AddressVariable

Listening address and port for the Caddy web server (default :8080).

Target
FRONTEND_LISTEN_ADDRESS
Default
:8080
Backend UpstreamVariable

Address of the LanGuard backend API service (default 127.0.0.1:8000).

Target
BACKEND_UPSTREAM
Default
127.0.0.1:8000