eeroVista is a read-only web-based monitoring tool for Eero mesh networks. It provides:
- 📊 Real-time Dashboard - View network status, connected devices, and bandwidth usage
- 📈 Historical Data - Track device connections and network performance over time
- 🚀 Speedtest History - Monitor ISP performance with historical speedtest results
- 🔌 Multi-Format Exports - Prometheus metrics, Zabbix LLD, and JSON API
- 🎨 Beautiful UI - Clean interface using the Catppuccin Latte color theme
- 🐳 Docker-Ready - Simple container deployment with persistent storage
- Network overview dashboard with real-time statistics
- Device list with connection status, signal strength, and bandwidth
- Network topology visualization showing mesh node connections
- Speedtest history graphs and trends
- Clean, accessible UI with Catppuccin Latte theme
- Prometheus metrics endpoint for scraping
- Zabbix Low-Level Discovery (LLD) for devices and nodes
- JSON API for custom integrations
- Health check endpoint for uptime monitoring
- Automatic background collection of device metrics (every 30s)
- Network-wide statistics (every 60s)
- Passive speedtest result collection
- Configurable data retention policies
-
Clone the repository:
git clone https://github.com/Yeraze/eeroVista.git cd eeroVista -
Create data directory:
mkdir data
-
Start the container:
docker compose up -d
-
Open your browser to
http://localhost:8080 -
Complete the first-run setup wizard to authenticate with your Eero account
docker run -d \
--name eerovista \
-p 8080:8080 \
-v $(pwd)/data:/data \
--restart unless-stopped \
yeraze/eerovista:latestFull documentation is available at https://yeraze.github.io/eeroVista/
- Getting Started Guide
- Configuration Reference
- API Documentation
- Prometheus Integration
- Zabbix Integration
- Development Guide
- Architecture Documentation
Real-time network overview with bandwidth usage, top consumers, and network statistics
Connected devices with status, IP addresses, signal strength, and port forwarding indicators
Individual device metrics, bandwidth graphs, DNS aliases, and port forward configuration
Mesh network topology showing nodes, connection quality, and routing configuration
Visual representation of network mesh connections and device distribution
This is normal behavior. eeroVista does not have access to historical data from before it was started. Only bandwidth and connection data collected after the container launches will be tracked. You should start seeing bandwidth graphs after data has been collected for a few minutes.
Your Eero account is linked to Amazon Login, which is not directly supported by the API. See the workaround in the Important Notes section above - create a separate admin account using email/password authentication.
If you restart the container without persisting the /data directory, all collected data will be lost. Make sure you're using a volume mount (as shown in the Quick Start) to persist your database.
Configure eeroVista via environment variables in docker-compose.yml:
environment:
# Collection intervals (seconds)
- COLLECTION_INTERVAL_DEVICES=30 # Device metrics
- COLLECTION_INTERVAL_NETWORK=60 # Network metrics
# Data retention (days)
- DATA_RETENTION_RAW_DAYS=7 # Raw time-series data
- DATA_RETENTION_HOURLY_DAYS=30 # Hourly aggregates
- DATA_RETENTION_DAILY_DAYS=365 # Daily aggregates
# Logging
- LOG_LEVEL=INFO # DEBUG, INFO, WARNING, ERRORSee Configuration Reference for all options.
/- Dashboard/devices- Device list/network- Network topology/speedtest- Speedtest history
/metrics- Prometheus metrics/api/health- Health check/api/devices- JSON device list/api/zabbix/discovery/devices- Zabbix device discovery/api/zabbix/discovery/nodes- Zabbix node discovery
See API Reference for complete documentation.
- Backend: FastAPI, SQLAlchemy, APScheduler
- Frontend: Jinja2, Chart.js, Bootstrap (Catppuccin Latte theme)
- Database: SQLite
- API Client: eero-client Python package
- Containerization: Docker
# Clone repository
git clone https://github.com/Yeraze/eeroVista.git
cd eeroVista
# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install -r requirements.txt
# Run development server
uvicorn src.main:app --reload --host 0.0.0.0 --port 8080See Development Guide for detailed setup instructions.
pytest
pytest --cov=src --cov-report=htmlContributions are welcome! Please see the Development Guide for:
- Setting up your development environment
- Code style guidelines (Black, Ruff)
- Testing requirements
- Pull request process
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes and add tests
- Run tests and linters:
pytest && black src/ && ruff check src/ - Commit your changes:
git commit -m "feat: Add my feature" - Push to your fork:
git push origin feature/my-feature - Open a Pull Request
-
Initial release (v1.0.0)
- Core architecture and documentation
- Database models and collectors
- Web interface with Catppuccin theme
- Prometheus exporter
- Zabbix integration
- Docker image
-
Future enhancements
- CSV export functionality
- Webhook notifications
- Advanced device filtering
- Bandwidth heatmaps
- Mobile-responsive design
- Multi-network support
MIT License - See LICENSE file for details
- eero-client - Python library for Eero API
- Catppuccin - Soothing pastel theme
- FastAPI - Modern Python web framework
- Chart.js - JavaScript charting library
- Documentation: https://yeraze.github.io/eeroVista/
- Issues: GitHub Issues
- Discussions: GitHub Discussions
