{"id":21329960,"url":"https://github.com/bigsk1/gpu-monitor","last_synced_at":"2025-04-15T00:42:26.399Z","repository":{"id":263798510,"uuid":"891420664","full_name":"bigsk1/gpu-monitor","owner":"bigsk1","description":"Real-time performance metrics and statistics for your Nvidia GPU","archived":false,"fork":false,"pushed_at":"2024-12-06T21:00:51.000Z","size":1044,"stargazers_count":27,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-15T00:42:20.509Z","etag":null,"topics":["dashboard","docker","docker-compose","gpu-monitoring","gpu-support","homelab","mistral","monitoring-server","monitoring-tool","nvidia","nvidia-cuda","nvidia-docker","nvidia-gpu","nvidia-smi","ollama","self-hosted"],"latest_commit_sha":null,"homepage":"https://github.com/bigsk1/gpu-monitor/wiki","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bigsk1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"bigsk1"}},"created_at":"2024-11-20T09:56:57.000Z","updated_at":"2025-04-12T01:26:46.000Z","dependencies_parsed_at":"2024-11-20T12:03:43.235Z","dependency_job_id":"55e2aec6-59f9-47b1-89a5-8895d14d4b0f","html_url":"https://github.com/bigsk1/gpu-monitor","commit_stats":null,"previous_names":["bigsk1/gpu-monitor"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigsk1%2Fgpu-monitor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigsk1%2Fgpu-monitor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigsk1%2Fgpu-monitor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bigsk1%2Fgpu-monitor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bigsk1","download_url":"https://codeload.github.com/bigsk1/gpu-monitor/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248986271,"owners_count":21194024,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dashboard","docker","docker-compose","gpu-monitoring","gpu-support","homelab","mistral","monitoring-server","monitoring-tool","nvidia","nvidia-cuda","nvidia-docker","nvidia-gpu","nvidia-smi","ollama","self-hosted"],"created_at":"2024-11-21T22:13:24.117Z","updated_at":"2025-04-15T00:42:26.376Z","avatar_url":"https://github.com/bigsk1.png","language":"HTML","funding_links":["https://github.com/sponsors/bigsk1"],"categories":[],"sub_categories":[],"readme":"![Docker support](https://img.shields.io/badge/docker-supported-blue)\n[![Docker Pulls](https://img.shields.io/docker/pulls/bigsk1/gpu-monitor)](https://hub.docker.com/r/bigsk1/gpu-monitor)\n[![Docker Image Size](https://img.shields.io/docker/image-size/bigsk1/gpu-monitor)](https://hub.docker.com/r/bigsk1/gpu-monitor)\n\n\n# Nvidia GPU Dashboard\n\nA real-time lightweight NVIDIA GPU monitoring dashboard built with Docker for easy deployment and cross-platform compatibility.\n\nhttps://github.com/user-attachments/assets/cd6cbe1f-33f0-47d5-8b30-29e4d08e90b4\n\n\n##  Quick Navigation 🔍\n\n\u003cdetails\u003e\n  \u003csummary\u003eFeatures\u003c/summary\u003e\n\n  - [Features](#features)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003ePrerequisites\u003c/summary\u003e\n\n  - [Prerequisites](#prerequisites)\n\n\u003c/details\u003e\n\n\u003cdetails open\u003e\n  \u003csummary\u003eQuick Start\u003c/summary\u003e\n\n  - [Using Pre-built Image](#using-pre-built-image)\n  - [Using Docker Compose](#using-docker-compose)\n\n\u003c/details\u003e\n\n\u003cdetails open\u003e\n  \u003csummary\u003eInstallation Prerequisites\u003c/summary\u003e\n\n  - [Ubuntu / Debian / WSL](#1-ubuntu--debian--wsl)\n  - [Install NVIDIA Container Toolkit](#2-install-nvidia-container-toolkit)\n  - [Configure Docker with Toolkit](#3-configure-docker-with-toolkit)\n  - [Restart Docker Daemon](#4-restart-docker-daemon)\n  - [Test Installation](#5-test-to-see-if-installed-correctly)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eBuilding gpu-monitor from Source\u003c/summary\u003e\n\n  - [Clone and Build the Repository](#building-gpu-monitor-from-source)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eConfiguration\u003c/summary\u003e\n\n  - [Access the Dashboard](#configuration)\n\n\u003c/details\u003e\n\n\u003cdetails open\u003e\n  \u003csummary\u003eAlternative Setup Method\u003c/summary\u003e\n\n  - [Setup Script Instructions](#alternative-setup-method)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eData Persistence\u003c/summary\u003e\n\n  - [Managing Data Persistence](#data-persistence)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eAlerts\u003c/summary\u003e\n\n  - [Configuring Alerts](#alerts)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eTroubleshooting\u003c/summary\u003e\n\n  - [Common Issues](#common-issues)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eLicense\u003c/summary\u003e\n\n  - [License](#license)\n\n\u003c/details\u003e\n\n\n## Features\n\n- Real-time GPU metrics monitoring\n- Interactive web dashboard\n- Historical data tracking (15m, 30m, 1h, 6h, 12h, 24h)\n- Temperature, utilization, memory, and power monitoring\n- Docker-based for easy deployment\n- Persist history between new containers\n- Real time alerts - sound and notification\n- Responsive theme for any size screen\n- Toggle gauges on or off to show metrics in graph\n\n## Prerequisites\n\n- Docker\n- NVIDIA GPU\n- NVIDIA Container Toolkit\n\n## Quick Start\n\nTest to see if you already have the requirements and ready to use. \n\n```bash\nsudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi\n```\nIf this failed proceed to [Installation Prerequisites](#installation-prerequisites)\n\n\n\n### Using Pre-built Image\n\n```bash\ndocker run -d \\\n  --name gpu-monitor \\\n  -p 8081:8081 \\\n  -e TZ=America/Los_Angeles \\\n  -v /etc/localtime:/etc/localtime:ro \\\n  -v ./history:/app/history \\\n  -v ./logs:/app/logs \\\n  --gpus all \\\n  --restart unless-stopped \\\n  bigsk1/gpu-monitor:latest\n```\nNote: Update your timezone to use the correct time\n### Using Docker Compose\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/bigsk1/gpu-monitor.git\ncd gpu-monitor\n```\n\n2. Start the container:\n```bash\ndocker-compose up -d\n```\n\n3. Access the dashboard at: [http://localhost:8081](http://localhost:8081)\n\n\n\n## Installation Prerequisites\n\n\n### 1. Ubuntu / Debian / WSL  \nWindows users make sure you have wsl with docker an easy way is [Docker Desktop Installation for Windows](https://docs.docker.com/desktop/setup/install/windows-install/)\n \nInstalling with apt add NVIDIA package repositories\n\n```bash\ncurl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \\\n  \u0026\u0026 curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \\\n    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \\\n    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list\n```\n\n### 2. Install nvidia container toolkit\n\n```bash\nsudo apt-get update\n```\n```bash\nsudo apt-get install -y nvidia-container-toolkit\n```\n\n### 3. Configure Docker with toolkit\n\n```bash\nsudo nvidia-ctk runtime configure --runtime=docker\n```\nThe nvidia-ctk command modifies the /etc/docker/daemon.json file on the host. The file is updated so that Docker can use the NVIDIA Container Runtime.\n\n\n### 4. Restart Docker daemon\n\n```bash\nsudo systemctl restart docker\n```\n\n### 5. Test to see if installed correctly\n\n```bash\nsudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi\n```\n\n\nFor other distributions, check the [official documentation](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html).\n\n\n## Building gpu-monitor from source\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/bigsk1/gpu-monitor.git\ncd gpu-monitor\n```\n\n2. Build the image:\n```bash\ndocker build -t gpu-monitor .\n```\n\n3. Run the container:\n```bash\ndocker run -d \\\n  --name gpu-monitor \\\n  -p 8081:8081 \\\n  -e TZ=America/Los_Angeles \\\n  -v /etc/localtime:/etc/localtime:ro \\\n  -v ./history:/app/history \\\n  -v ./logs:/app/logs \\\n  --gpus all \\\n  --restart unless-stopped \\\n  gpu-monitor\n```\n\n## Configuration\n\nThe dashboard is accessible at: [http://localhost:8081](http://localhost:8081)\n by default. To change the port, modify the `docker-compose.yml` file or the `-p` parameter in the docker run command.\n\n--- \n\n![GPU Monitor Dashboard](https://imagedelivery.net/WfhVb8dSNAAvdXUdMfBuPQ/a081bac1-e86f-4833-91ad-a1d64c994200/public)\n\n\n## Alternative Setup Method\n\nA setup script is provided for convenience. It checks prerequisites and manages the service:\n\n- If you have issues then make sure `setup.sh` is executable\n\n```bash\nchmod +x ./setup.sh\n```\n\n---\n- Check prerequisites and start the service\n```bash\n./setup.sh start\n```\n---\n- Stop the service\n```bash\n./setup.sh stop\n```\n---\n- Restart the service\n```bash\n./setup.sh restart\n```\n---\n- Check service status\n```bash\n./setup.sh status\n```\n---\n- View logs\n```bash\n./setup.sh logs\n```\n\nExample of script running\n```bash\n~/gpu-monitor ./setup.sh start\n[+] Checking prerequisites...\n[+] Docker: Found\n[+] Docker Compose: Found\n[+] NVIDIA Docker Runtime: Found\n[+] NVIDIA GPU: Found\n[+] Starting GPU Monitor...\nCreating network \"gpu-monitor_default\" with the default driver\nCreating gpu-monitor ... done\n[+] GPU Monitor started successfully!\n[+] Dashboard available at: http://localhost:8081\n[+] To check logs: docker-compose logs -f\n```\n\n\n## Data Persistence\n\nBy default, all data is stored within the container will persist between container rebuilds, if you don't want that then remove volumes, modify the docker run or docker-compose.yml:\n\n```yaml\nservices:\n  gpu-monitor:\n    # ... other settings ...\n    volumes:\n      - ./history:/app/history    # Remove Persist historical data\n      - ./logs:/app/logs    # Remove Persist logs\n```\n\n## Alerts\n\nYou can enable or disable alerts in ui, you can set thresholds for gpu temp, gpu utilization % and watts. Setting are saved in your browser if you make changes you only need to do it once, however you can always modify the code and rebuild the container to make it permanent.\n\nThe defaults are: \n\n```bash\n    temperature: 80,  \n    utilization: 100,\n    power: 300\n```\n\n![GPU Monitor Dashboard](https://imagedelivery.net/WfhVb8dSNAAvdXUdMfBuPQ/6799f2b8-aac2-4741-d125-3b4ed7496e00/public)\n\n\n## Troubleshooting\n\n### Common Issues\n\n1. **NVIDIA SMI not found**\n   - Ensure NVIDIA drivers are installed\n   - Verify NVIDIA Container Toolkit installation\n   - Make sure you can run:  \n\n```bash\nsudo docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi\n```\nIf this failed proceed to [Installation Prerequisites](#installation-prerequisites)\n\n2. **Container fails to start**\n   - Check Docker logs: `docker logs gpu-monitor`\n   - Verify GPU access: `nvidia-smi`\n   - Ensure proper permissions\n\n3. **Dashboard not accessible**\n   - Verify container is running: `docker ps`\n   - Check container logs: `docker logs gpu-monitor`\n   - Ensure port 8081 is not in use\n4. **TimeStamps don't match your local time**\n\n    - Replace `America/Los_Angeles` with your timezone\n[List of tz database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)\n\n5. **I don't like the alert sound**\n    - Replace the .mp3 in the `sounds` folder and name it alert.mp3\n    - Getting double sounds from notifications, disable windows notifications or disable it in ui.\n\n6. **Updated Nvidia driver and UI metrics seem stuck**\n    - The connection to the nvidia runtime was interrupted, restart the container.\n\n## Mobile Layout\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://imagedelivery.net/WfhVb8dSNAAvdXUdMfBuPQ/3b772d51-8bd6-4d77-5147-25b15170a900/public\" alt=\"GPU Monitor Dashboard Mobile Temp\" width=\"300\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://imagedelivery.net/WfhVb8dSNAAvdXUdMfBuPQ/c0176433-9449-4243-d3cf-835c198f5500/public\" alt=\"GPU Monitor Dashboard Mobile Stats\" width=\"300\"\u003e\n\u003c/p\u003e\n\n\n## License\n[![License](https://img.shields.io/github/license/bigsk1/gpu-monitor)](https://github.com/bigsk1/gpu-monitor/blob/main/LICENSE)\n\nDocker Scout Score\n\n![Docker Scout](https://imagedelivery.net/WfhVb8dSNAAvdXUdMfBuPQ/969b5bc9-6c2c-44c7-32a8-359287378a00/public)\n\n## Star History\n\n\u003ca href=\"https://star-history.com/#bigsk1/gpu-monitor\u0026Date\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=bigsk1/gpu-monitor\u0026type=Date\u0026theme=dark\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=bigsk1/gpu-monitor\u0026type=Date\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=bigsk1/gpu-monitor\u0026type=Date\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbigsk1%2Fgpu-monitor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbigsk1%2Fgpu-monitor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbigsk1%2Fgpu-monitor/lists"}