Network reconnaissance and asset discovery tool built with Go and HTMX.
Reconya discovers and monitors devices on your network with real-time updates. Suitable for network administrators, security professionals, and home users.
- IPv4 Network Scanning - Comprehensive device discovery with native Go implementation
- IPv6 Passive Monitoring - Detects IPv6 devices through neighbor discovery and interface monitoring
- Device Identification - MAC addresses, vendor detection, hostnames, and device types
- Dual-Stack Support - Full IPv4 and IPv6 address display and management
- Real-time Monitoring - Live device status updates and event logging
- Web-based Dashboard - Modern HTMX-powered interface with dark theme
- Device Fingerprinting - Automatic OS and device type detection
- Network Management - Multi-network support with CIDR configuration
Join our community for support, discussions, and updates:
The fundamental limitation is Docker's network architecture. Even with comprehensive MAC discovery methods, privileged mode, and enhanced capabilities, Docker containers cannot reliably access Layer 2 (MAC address) information across different network segments.
For full functionality, including complete MAC address discovery, please use the local installation method below.
Docker files have been moved to the experimental/ directory for those who want to experiment with containerized deployment, but local installation is the recommended approach.
Download and set up reconYa with a single command:
curl -sL https://raw.githubusercontent.com/Dyneteq/reconya/master/install.sh | shThis auto-detects your OS and architecture, downloads the correct binary, and sets up the config.
Available platforms: Linux (x86_64, ARM64), macOS (Intel, Apple Silicon)
After installing, start reconYa:
cd reconya && sudo ./reconya-*Then open your browser to: http://localhost:3008
Default login: admin / password
If you prefer to build from source, you'll need:
- Go 1.21 or later - Download Go
- make - Build tool (pre-installed on most Unix systems)
git clone https://github.com/Dyneteq/reconya.git
cd reconya
make installThis will:
- Download Go dependencies
- Create default
.envconfiguration file
After installation, use these commands:
make start # Start reconYa as daemon
make start-dev # Start in foreground (dev mode)
make stop # Stop reconYa
make status # Check service status
make logs # View logs
make help # Show all commandsThen open your browser to: http://localhost:3008
Default login: admin / password
If you prefer to install manually:
- Install Go (1.21 or later): https://golang.org/dl/
-
Clone the repository:
git clone https://github.com/Dyneteq/reconya.git cd reconya -
Setup backend:
cd backend cp .env.example .env # Edit .env file to set your credentials go mod download
-
Start the application:
cd backend go run ./cmdWindows users: If you encounter SQLite CGO errors, use:
cd backend CGO_ENABLED=1 go run ./cmd -
Access the application:
- Open your browser to:
http://localhost:3008 - Default login:
admin/password(check your.envfile for custom credentials)
- Open your browser to:
- Login with your credentials (default:
admin/password) - Set up a new network
- Choose the network from the dropdown and start scan
- Devices will automatically appear as they're discovered on your network
- Click on devices to see details including:
- MAC addresses and vendor information
- Open ports and running services
- Operating system fingerprints
- Device screenshots (for web services)
- Use the network map to visualize device locations
- Monitor the event log for network activity
reconYa includes advanced IPv6 passive monitoring capabilities that activate automatically during network scans:
- Neighbor Discovery Protocol (NDP) - Monitors IPv6 neighbor cache for active devices
- Interface Monitoring - Detects IPv6 addresses on network interfaces
- Automatic Classification - Identifies Link-Local, Unique Local, and Global addresses
- Dual-Stack Integration - Links IPv6 addresses to existing IPv4 devices via MAC addresses
- Link-Local (
fe80::/10) - Local network segment addresses - Unique Local (
fc00::/7) - Private network addresses - Global (
2000::/3) - Internet-routable addresses
- Passive Detection - No network traffic generated, only monitors existing traffic
- Real-time Updates - IPv6 addresses appear in device list and details
- Cross-Platform - Works on Linux, macOS, and Windows
- Automatic Activation - Starts with scanning, stops when idle
Edit the backend/.env file to customize:
LOGIN_USERNAME=admin
LOGIN_PASSWORD=your_secure_password
DATABASE_NAME="reconya-dev"
JWT_SECRET_KEY="your_jwt_secret"
SQLITE_PATH="data/reconya-dev.db"
# IPv6 Monitoring Configuration
IPV6_MONITORING_ENABLED=true
IPV6_MONITOR_INTERFACES=
IPV6_MONITOR_INTERVAL=30
IPV6_LINK_LOCAL_MONITORING=true
IPV6_MULTICAST_MONITORING=false- Backend: Go API with HTMX templates and SQLite database (Port 3008)
- Web Interface: HTML and vanilla JS
- Scanning: Multi-strategy network discovery with native Go implementation
- Database: SQLite for device storage and event logging
Reconya uses a multi-layered scanning approach built entirely with native Go:
1. Network Discovery (Every 30 seconds)
- ICMP ping sweeps (privileged mode)
- TCP connect probes to common ports (fallback)
- ARP table lookups for MAC address resolution
2. Device Identification
- IEEE OUI database for vendor identification
- Multi-method hostname resolution (DNS, NetBIOS, mDNS)
- Device type classification based on ports and vendors
3. Port Scanning (Background workers)
- Top 100 ports scan for active services
- Service detection and banner grabbing
- Concurrent scanning with worker pool pattern
4. Web Service Detection
- Automatic discovery of HTTP/HTTPS services
- Screenshot capture using headless Chrome
- Service metadata extraction (titles, server headers)
No devices found
- Run
make statusto check service status - Check that you're on the same network segment as target devices
Services won't start
- Run
make stopto kill any stuck processes - Check
make statusfor dependency issues - Ensure port 3008 is available
Missing MAC addresses
- MAC addresses only visible on same network segment
- Some devices may not respond to ARP requests
Services keep crashing
- Verify your
.envconfiguration is correct - Try stopping and restarting:
make stop && make start - Check logs with:
make logs
Windows SQLite CGO Error
- If you see "Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work":
cd backend CGO_ENABLED=1 go run ./cmd # or for building: make build-cgo
- Ensure you have a C compiler installed (like TDM-GCC or Visual Studio Build Tools)
To completely remove reconYa:
make stop # Stop any running processes
make clean # Remove build artifacts
rm -rf reconya # Remove the directoryDocker files are available in the experimental/ directory but are not recommended due to network isolation limitations that prevent proper MAC address discovery. Use local installation for full functionality.
If you find reconYa useful, consider supporting its development:
Your support helps keep reconYa free, open-source, and actively maintained. Every contribution β big or small β makes a difference!
- Fork the repository
- Create feature branch
- Make changes and test
- Submit pull request
Creative Commons Attribution-NonCommercial 4.0 International License. Commercial use requires permission.
- tududi - Self-hosted task management with hierarchical organization, multi-language support, and Telegram integration
- BreachHarbor - Cybersecurity suite for digital asset protection
- Hevetra - Digital tracking for child health milestones
