Read-only monitoring for Eero mesh networks
Complete reference for eeroVista configuration options.
All configuration is done through environment variables in docker-compose.yml or Docker run commands.
| Variable | Default | Description |
|---|---|---|
DATABASE_PATH |
/data/eerovista.db |
Path to SQLite database file |
| Variable | Default | Description |
|---|---|---|
COLLECTION_INTERVAL_DEVICES |
30 |
Seconds between device metric collections |
COLLECTION_INTERVAL_NETWORK |
60 |
Seconds between network metric collections |
Recommendations:
| Variable | Default | Description |
|---|---|---|
DATA_RETENTION_RAW_DAYS |
7 |
Days to keep raw time-series data |
DATA_RETENTION_HOURLY_DAYS |
30 |
Days to keep hourly aggregates |
DATA_RETENTION_DAILY_DAYS |
365 |
Days to keep daily aggregates |
Disk Usage Estimates (per day of raw data):
| Variable | Default | Description |
|---|---|---|
LOG_LEVEL |
INFO |
Logging level: DEBUG, INFO, WARNING, ERROR, CRITICAL |
| Variable | Default | Description |
|---|---|---|
EERO_SESSION_TOKEN |
(empty) | Pre-authenticated session token (advanced) |
Note: Session token is normally stored in the database after first-run wizard. Only set this variable for advanced use cases like container recreation.
version: '3.8'
services:
eerovista:
image: eerovista:latest
container_name: eerovista
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- ./data:/data
environment:
# Database
- DATABASE_PATH=/data/eerovista.db
# Collection intervals (seconds)
- COLLECTION_INTERVAL_DEVICES=30
- COLLECTION_INTERVAL_NETWORK=60
# Data retention (days)
- DATA_RETENTION_RAW_DAYS=7
- DATA_RETENTION_HOURLY_DAYS=30
- DATA_RETENTION_DAILY_DAYS=365
# Logging
- LOG_LEVEL=INFO
For near real-time device tracking:
environment:
- COLLECTION_INTERVAL_DEVICES=15 # Collect every 15 seconds
- DATA_RETENTION_RAW_DAYS=3 # Keep less raw data
Trade-offs:
For minimal resource usage:
environment:
- COLLECTION_INTERVAL_DEVICES=120 # Collect every 2 minutes
- COLLECTION_INTERVAL_NETWORK=300 # Collect every 5 minutes
- DATA_RETENTION_RAW_DAYS=3 # Keep 3 days raw
- DATA_RETENTION_HOURLY_DAYS=14 # Keep 2 weeks hourly
Trade-offs:
Mount /data for persistent database storage:
volumes:
- ./data:/data # Local directory
- /mnt/nas/eerovista:/data # Network storage
- eerovista-data:/data # Named volume
To backup the database:
# While container is running
docker compose exec eerovista sqlite3 /data/eerovista.db ".backup /data/backup.db"
# Copy backup out
docker cp eerovista:/data/backup.db ./eerovista-backup-$(date +%Y%m%d).db
Change the exposed port:
ports:
- "3000:8080" # Access on http://localhost:3000
Example nginx configuration:
server {
listen 80;
server_name eerovista.example.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
The web UI has read-only access to the database. Only background collectors can write data.
docker-compose.yml with EERO_SESSION_TOKEN setenv_file:
- .env.secrets # Add to .gitignore
Run on a dedicated Docker network:
networks:
eerovista-net:
driver: bridge
services:
eerovista:
networks:
- eerovista-net
# Show environment variables
docker compose exec eerovista env | grep -E "COLLECTION|RETENTION|LOG_LEVEL"
# Check database settings
docker compose exec eerovista sqlite3 /data/eerovista.db "SELECT * FROM config;"
To reset to defaults, remove the database and restart:
docker compose down
rm data/eerovista.db
docker compose up -d
Warning: This deletes all collected data.
(Future enhancement: Support for YAML/JSON configuration file)
Currently, all configuration is through environment variables. A future version may support:
# eerovista.yml
database:
path: /data/eerovista.db
collectors:
devices:
interval: 30
enabled: true
network:
interval: 60
enabled: true
retention:
raw_days: 7
hourly_days: 30
daily_days: 365