Nestview

Nestview

Docker app from Gurthyy's Repository

Overview

Nestview is a lightweight, self-hosted Docker visibility and health tool for homelabbers. Zero-config autodiscovery of all running containers, a health dashboard, searchable log history, per-container CPU/memory/network stats, Discord alerting, and image update awareness, all from a single container with no manual service configuration required.

- Default port: 8484
- First run: A setup wizard will guide you through creating your admin account.

- Documentation: https://github.com/kylejschultz/nestview
- Discord: https://discord.gg/UQAZ3bJ6

Nestview

License: GPL v3 GitHub Sponsors Ko-fi Discord

Lightweight, self-hosted Docker visibility for homelabbers.

Nestview gives you a live health dashboard with per-container CPU and memory history charts, 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. Container metrics and logs are re-associated when containers are recreated, so your history survives updates.

Need help? Join the Discord - it's the fastest way to get support, ask questions, or report a bug. GitHub Issues is available too, but Discord is where the conversation happens.

Quick start

Prerequisites

Installation:

Docker Compose (Recommended):

Create a docker-compose.yml with the following contents:

services:
  nestview:
    container_name: nestview
    image: ghcr.io/kylejschultz/nestview:latest
    restart: unless-stopped
    ports:
      - "8484:8484"
    volumes:
      - ./data:/data
      - /var/run/docker.sock:/var/run/docker.sock
    healthcheck:
      test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8484/api/health')"]
      interval: 15s
      timeout: 5s
      retries: 3

Then run:

docker compose up -d

To update, pull the latest image and restart:

docker compose pull
docker compose up -d

Docker Standalone

To run it directly without a compose file:

docker run -d \
  --name nestview \
  --restart unless-stopped \
  -p 8484:8484 \
  -v $(pwd)/data:/data \
  -v /var/run/docker.sock:/var/run/docker.sock \
  ghcr.io/kylejschultz/nestview:latest

Unraid Community Applications

Search for Nestview in the Unraid CA plugin. The template is pre-configured with everything you should need. All Environmental Variables are included in the template, with optional variables found by clicking Show more settings...

The Unraid support thread can be found on the Unraid forums.

Security

On first launch, you'll be prompted to create an admin username and password before the dashboard is accessible.

If you use an external auth proxy (Authelia, Authentik, nginx basic auth), you can select "No authentication" during setup to avoid double-authenticating. Only use this option if Nestview is not directly accessible from outside your network.

If you forget your password, add RESET_ADMIN_PASSWORD=true to your .env file and restart the container. You'll be taken back through the setup wizard. Remove the variable and restart again once you've set a new password.

If you need to access Nestview remotely, put it behind a VPN (Tailscale, WireGuard) rather than port-forwarding directly. Do not expose port 8484 to the internet.

Environment variables

The below envs are optional and most can be configured in the UI - only set if needed.

  • Docker Users: Copy .env.example to .env
  • Unraid Users: These are hidden by default. Click Show more settings... to unhide and set as needed.
Variable Default Description
POLL_INTERVAL 10 Seconds between Docker stats polls
LOG_BATCH_INTERVAL 5 Seconds between log flushes to SQLite
SECRET_KEY (auto-generated) Session cookie signing key. Leave blank - Nestview generates and persists one automatically. Set explicitly for scripted deployments that need stable sessions across data resets.
RESET_ADMIN_PASSWORD (unset) Set to true to clear stored credentials and re-trigger the setup wizard on next start. Remove after completing setup.
NESTVIEW_SECURE_COOKIES false Set to true when Nestview is behind a TLS-terminating reverse proxy (Nginx, Caddy, Traefik). Marks session cookies as Secure so they are only sent over HTTPS.
NESTVIEW_ALLOWED_ORIGINS (unset) Comma-separated list of allowed CORS origins (e.g. https://nestview.example.com). When unset, the default wildcard * is used — safe for local/homelab deployments. Set this when exposing Nestview through a reverse proxy and you want to restrict cross-origin requests to known hosts.
DATABASE_PATH /data/nestview.db Path inside the container where Nestview stores its SQLite database. Override only if you need a non-standard mount path.
TZ UTC Timezone for log timestamps and scheduled tasks. Use a standard tz database name (e.g. America/Chicago, Europe/London).
LOG_RETENTION_DAYS 7 How many days of container log history to keep. Seeded from this env var on first run only; changes after initial setup must be made in the Settings UI.

Log retention is configured in the Settings UI.

Discord alerts

  1. In your Discord server, Create a new channel for notifications.
  2. Select the channel and go to Edit Channel > Integrations > Create Webhook
  3. Copy the webhook URL
  4. 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.

Telemetry

Nestview includes optional, anonymous telemetry that helps track active installs and guide development priorities. It is off by default and can be enabled from Settings > General.

When enabled, a single ping is sent once per day containing:

  • A randomly generated install ID (not tied to any user, container, or host data)
  • Nestview version
  • Architecture (amd64 or arm64)
  • Operating system
  • Container count
  • Release channel
  • Timestamp

No personal data, container names, image names, or host information is collected or transmitted.

License

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.

Community & support

Discord is the best place to get help. Join at discord.gg/aDEBQq3XtN - bug reports, questions, and general chat all happen there.

GitHub Issues is available for bugs and feature requests, but Discord is faster and more conversational. Please search existing issues before opening a new one.

GitHub Sponsors / Ko-fi - if Nestview saves you time, a coffee is always appreciated.

Install Nestview on Unraid in a few clicks.

Find Nestview in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Nestview Review the template variables and paths Click Install

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/kylejschultz/nestview:latest
Last Updated2026-07-15
First Seen2026-05-04

Runtime arguments

Web UI
http://[IP]:[PORT:8484]
Network
bridge
Privileged
false

Template configuration

Web UI PortPorttcp

Port to access the Nestview web interface.

Target
8484
Default
8484
Value
8484
AppDataPathrw

Persistent storage for the Nestview database (SQLite) and configuration.

Target
/data
Default
/mnt/user/appdata/nestview
Value
/mnt/user/appdata/nestview
Docker SocketPathrw

Access to the Docker socket. Required for container autodiscovery, monitoring, and container restart functionality.

Target
/var/run/docker.sock
Default
/var/run/docker.sock
Value
/var/run/docker.sock
Stats Poll Interval (seconds)Variable

How often Nestview polls Docker for container stats. Leave blank to use the default (10 seconds).

Target
POLL_INTERVAL
Log Retention (days)Variable

How many days of container log history to keep. Leave blank to use the default (7 days). This value is only read on first run - set it before starting Nestview for the first time if you want a non-default value. Changes after initial setup must be made in the Nestview Settings UI.

Target
LOG_RETENTION_DAYS
TimezoneVariable

Timezone for log timestamps and scheduled tasks. Leave blank for UTC. Use a standard tz database name, e.g. America/Chicago or Europe/London.

Target
TZ
Secure CookiesVariable

Set to true if Nestview is behind a TLS-terminating reverse proxy (Nginx, Caddy, Traefik). Leave blank otherwise.

Target
NESTVIEW_SECURE_COOKIES
Reset Admin PasswordVariable

Set to true to clear stored credentials and re-trigger the setup wizard on next start. Remove this value and restart the container again after completing setup.

Target
RESET_ADMIN_PASSWORD