Lightweight, self-hosted Docker visibility for homelabbers.
Nestview gives you a live health dashboard, searchable log history, and Discord alerts for all your containers — no manual configuration, no Grafana stack required. Point it at your Docker socket and it discovers everything automatically.
Create a docker-compose.yml with the following contents:
services:
backend:
image: ghcr.io/kylejschultz/nestview-backend:latest
restart: unless-stopped
environment:
- DATABASE_PATH=/data/nestview.db
- LOG_RETENTION_DAYS=${LOG_RETENTION_DAYS:-7}
- NESTVIEW_COLLECTOR_KEY=${NESTVIEW_COLLECTOR_KEY:-}
# Optional: protect write endpoints (start/stop/restart, settings).
# The frontend will prompt for this key on first load if set.
- NESTVIEW_API_KEY=${NESTVIEW_API_KEY:-}
volumes:
- nestview_data:/data
- /var/run/docker.sock:/var/run/docker.sock
collector:
image: ghcr.io/kylejschultz/nestview-collector:latest
restart: unless-stopped
depends_on:
- backend
environment:
- BACKEND_URL=http://backend:8000
- POLL_INTERVAL=${POLL_INTERVAL:-10}
- LOG_BATCH_INTERVAL=${LOG_BATCH_INTERVAL:-5}
- NESTVIEW_COLLECTOR_KEY=${NESTVIEW_COLLECTOR_KEY:-}
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
frontend:
image: ghcr.io/kylejschultz/nestview-frontend:latest
restart: unless-stopped
ports:
- "${NESTVIEW_PORT:-8080}:80"
depends_on:
- backend
volumes:
nestview_data:Then run:
docker compose up -d
# Open http://localhost:8080 — the setup wizard will guide you through Discord alertsThat's it. Nestview will find all running and stopped containers immediately.
To pull the latest images and restart:
docker compose pull
docker compose up -dDo not expose port 8080 directly to the internet. Nestview is designed for home networks and trusted LANs. The dashboard has no login by default — anyone who can reach port 8080 can view your container names, logs, and metrics.
If you need to access Nestview remotely, put it behind a VPN (Tailscale, WireGuard) or a reverse proxy with authentication (Authelia, Authentik, nginx basic auth). Do not port-forward 8080 through your router.
For an extra layer of protection, set NESTVIEW_API_KEY in your .env file:
NESTVIEW_API_KEY=your-strong-random-keyWhen set, all write operations (container start/stop/restart, settings changes) require the key. The frontend will prompt for it on first load. Viewing the dashboard, logs, and events does not require the key.
The defaults work out of the box. Copy
.env.exampleto.envonly if you want to change the port or add a collector key.
| Variable | Default | Description |
|---|---|---|
NESTVIEW_PORT |
8080 |
Host port Nestview is exposed on |
NESTVIEW_COLLECTOR_KEY |
(empty) | Optional shared secret to authenticate the collector |
NESTVIEW_API_KEY |
(empty) | Optional key to protect write endpoints; frontend prompts for it when set |
POLL_INTERVAL |
10 |
Seconds between Docker stats polls |
LOG_BATCH_INTERVAL |
5 |
Seconds between log flushes to the backend |
Log retention and exited container TTL are configured in the Settings UI.
- Zero-config autodiscovery — all containers, Compose stacks, ports, volumes, and networks detected automatically via the Docker socket
- Live health dashboard — per-container CPU%, memory, uptime, restart count, and status badge; containers grouped by Compose project
- Searchable log history — logs streamed from every running container, stored in SQLite, searchable from the UI
- Configurable retention — set log retention and container TTL in the Settings UI; cleanup runs hourly
- Discord alerting — get a notification when a container crashes, restarts unexpectedly, or is OOM-killed
- In your Discord server, go to Server Settings → Integrations → Webhooks → New Webhook
- Copy the webhook URL
- Open Nestview and paste the URL into the setup wizard (shown on first launch) or Settings → General
Nestview sends a formatted embed when a container crashes (non-zero exit), is OOM-killed, or restarts unexpectedly.
GNU General Public License v3.0 — free to use, modify, and self-host. If you distribute modified versions, you must release them under the same license.
- Discord — bug reports, general chat, release announcements
- GitHub Issues — bugs and feature requests
- GitHub Sponsors / Ko-fi — if Nestview saves you time, a coffee is always appreciated
See CONTRIBUTING.md. TL;DR: open an issue before big changes, follow conventional commits, don't be a dick.