Discover & poll
Scan CIDRs, ranges, or fixed IPs. Known miners stay in the fleet until TTL, re-polled on a configurable interval.
Read-only · Go · oat.ink
Compact table, filters, miner detail, and live charts built for a wall monitor with 20+ miners. Discover on your LAN, poll continuously, stay read-only.
See the whole fleet without logging into each miner. Designed for dark rooms and glanceable status.
Scan CIDRs, ranges, or fixed IPs. Known miners stay in the fleet until TTL, re-polled on a configurable interval.
Search by IP, host, model, or serial. Narrow by brand, firmware, algo, status, hashrate, temps, power, chips, and efficiency.
Canvas charts for hashrate, temp, ASIC/VR temp, wattage, efficiency, and chips — with window presets from 4h to 7d.
Metric samples land in a local SQLite file so charts survive restarts. Retention is configurable (default 7 days).
Select a row for boards, fans, and pools without leaving the dashboard.
No restart, pool, or power controls in the UI. Safe to leave up on a shared monitor.
Single Docker image with asic-rs FFI baked in, or run locally with a sibling FFI build.
Compose bind-mounts ./data so the metrics DB is at ./data/hasherdash.db.
Docker is the fastest path. Host networking lets the container scan your LAN.
mkdir -p data
docker compose up -d --build
make docker && mkdir -p data
docker run --rm --network host \
-e MINER_SUBNET=192.168.1.0/24 \
-e SQLITE_PATH=/app/data/hasherdash.db \
-v "$PWD/data:/app/data" \
hasherdash:latest
open http://localhost:8080
cp hasherdash.example.yaml hasherdash.yaml
# edit subnets under:
# subnets:
# - 192.168.1.0/24
mkdir -p data
docker run --rm --network host \
-v "$PWD/hasherdash.yaml:/app/hasherdash.yaml:ro" \
-v "$PWD/data:/app/data" \
-e CONFIG_FILE=/app/hasherdash.yaml \
-e SQLITE_PATH=/app/data/hasherdash.db \
hasherdash:latest
SQLite is bind-mounted at ./data/hasherdash.db on the host
(/app/data/hasherdash.db in the container). Full config, API, and local setup are in the
README.