https://github.com/anexgohan/pankha
Centralized multi-system scalable fan control. Real-time dashboard, custom curves, Docker server + native Linux/Windows agents. Selfhosted with Docker
https://github.com/anexgohan/pankha
docker fan-control fan-controller fancontrol hardware-monitoring homelab ipmi linux pwm pwm-control pwm-controller pwm-fan redfish self-hosted sensors sysadmin temperature temperature-monitoring thermal-management windows
Last synced: 12 days ago
JSON representation
Centralized multi-system scalable fan control. Real-time dashboard, custom curves, Docker server + native Linux/Windows agents. Selfhosted with Docker
- Host: GitHub
- URL: https://github.com/anexgohan/pankha
- Owner: Anexgohan
- License: other
- Created: 2025-08-10T07:44:17.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2026-04-21T21:03:24.000Z (about 1 month ago)
- Last Synced: 2026-04-21T22:36:19.162Z (about 1 month ago)
- Topics: docker, fan-control, fan-controller, fancontrol, hardware-monitoring, homelab, ipmi, linux, pwm, pwm-control, pwm-controller, pwm-fan, redfish, self-hosted, sensors, sysadmin, temperature, temperature-monitoring, thermal-management, windows
- Language: TypeScript
- Homepage: https://pankha.app/
- Size: 142 MB
- Stars: 61
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
- Cla: CLA.md
Awesome Lists containing this project
README
# Pankha Fan Control
(पंखा)
**Pankha Fan Control** is an open-source fan and temperature management system for any PC - single desktop, server, or homelab fleet. Build smarter fan curves, lower noise, drop temperatures, and manage every machine from one web dashboard. Works on Windows and Linux. Free, self-hosted, no telemetry.
    
   
     
 

---
## What is Pankha Fan Control?
**Pankha Fan Control** - is open-source software that gives you complete control over your systems cooling.
Build custom fan curves, monitor temperatures in real time, and tune RPM and noise to your exact preference - on a single desktop, a homelab, or a fleet of servers.
It runs the same way whether you're managing one machine or one hundred. The web dashboard works in any browser, on any device. Agents are lightweight, the backend is self-hosted, and nothing about your hardware ever leaves your network.
Its built to support single Windows or Linux PC or multiple Servers, VM's, NAS boxes, PC's - it can handle any scale.
---
## Features
- **Quieter PCs, cooler temps :** smart fan curves with hysteresis and stepping eliminate the always full throttlenoise and thermal spikes left behind by stock BIOS fan profiles
- **Unify Everything into 'One dashboard' :** unified web UI for one system or 100, on Windows, Linux, or IPMI / BMC-controlled servers, manage fans and temperatures across all your machines, on Windows, Linux, Virtual Machines with passed through devices like GPU, PCIe card, HBA, etc and x64 or ARM from one dashboard
- **Visual profile editor :** drag-and-drop curve editor with import / export so you can build, share, and reuse fan profiles across machines
- **Real hardware control :** direct PWM control with live RPM feedback, per-fan policies, and an always-on emergency-temperature override
- **Real-time monitoring :** temperature, RPM, and historical data for CPU, GPU, NVMe, motherboard, and chipset, streamed live over WebSocket
- **Safe by design :** if the backend is unreachable, agents fall back to a configurable safe fan speed with a local emergency-temperature override
- **Light and fast :** the Linux agent is a single Rust binary using under 15MB RAM and under 1% CPU. The Windows agent runs as a .NET 8 service using under 25MB RAM and under 1% CPU with full LibreHardwareMonitor access. IPMI/BMC Agents use even less resources.
- **Open source, self-hosted :** AGPL-3.0, no cloud, no telemetry. PostgreSQL backend, single-container Docker deployment
---
## Supported Systems & Architecture
Pankha is designed to manage cooling profiles across all your hardware from a single interface. Whether you are adjusting a gaming desktop, a personal Linux machine, or multiple computers at once, Pankha keeps your system footprint light and your control absolute.
| Feature / System | 🪟 Windows Desktop | 🐧 Linux System | 💻 Central Dashboard |
| :--- | :--- | :--- | :--- |
| **Ideal For** | Gaming Rigs, Workstations, virtual or remote desktops | Daily Drivers, Servers, Hosts/Nodes, Virtual device passed through | Any modern web browser (Mobile/PC) |
| **Tech Stack** | C# / .NET (Native Client) | Rust (Lightweight Binary) | TypeScript / React Backend |
| **Deployment** | Quick-install `.msi` package | Pre-configured standalone binary | 1-Click Docker Compose setup |
| **Resource Usage** | Near-zero background RAM & CPU usage | Near-zero background RAM & CPU usage | Low-overhead WebSocket hub |
| **Hardware Link** | via LibreHardwareMonitor | Direct kernel-level device mappings | Real-time aggregated data stream |
| **Installation** | Fully automated/guided | Instant pre-configured binary | Self-hosted or local execution |
---
## Who is Pankha Fan Control for?
**Anyone who wants more control over their cooling than stock tools allow.** From a single quiet desktop to a fleet of servers - same dashboard, same workflow.
- **PC builders and gamers :** replace stock BIOS fan curves with smart custom ones; quieten your desktop without sacrificing thermals
- **Windows users :** a no-cloud, no-account fan utility that doesn't require per-machine setup
- **Linux desktop and server users :** PWM fan control on headless boxes (Debian, Ubuntu, RHEL, Proxmox, TrueNAS) without a GUI
- **Homelabbers and self-hosters :** manage Proxmox hosts, NAS boxes, and virtualisation hosts from one place
- **Server admins :** readable fan curves and a web UI for Dell PowerEdge, HP ProLiant, and Supermicro hardware controlled through IPMI / BMC, cure for always screaming fans even when idle.
- **Anyone managing more than one machine :** configure one or multiple profiles and apply to as many machines as you like.
---
## Screenshots

Agent widget

Temperature sensors

Fan control with RPM feedback

Fan profiles

Customisable profile editor

Profile import / export
---
## Quick Start
### Overview :
1. Deploy the backend server (Docker)
2. Install appropriate agent on each machine you want to control (Linux, Windows, IPMI/BMC)
3. Open the dashboard and start tuning your fan curves!
###  Server (Docker)
```bash
wget -O compose.yml https://github.com/Anexgohan/pankha/releases/latest/download/compose.yml
wget -O .env https://github.com/Anexgohan/pankha/releases/latest/download/example.env
docker compose pull && docker compose up -d
```
Open the dashboard at `http://localhost:3143` (or your configured `PANKHA_PORT`).
[](https://github.com/Anexgohan/pankha/wiki/Server-Installation)
---
###  Linux Agent (Rust)
**A. Recommended - one-line install via Deployment AIO**
In the dashboard, open **Deployment → Deployment AIO**, configure your options, and copy the generated command. It will look like:
```bash
# This is an example
wget -qO- "http://:/api/deploy/linux?token=" | bash
# or
curl -sSL "http://:/api/deploy/linux?token=" | bash
```
The script auto-detects your CPU architecture, downloads the matching binary, applies the config you set in the GUI, and installs the systemd service.
**B. Manual install**
Show x64 / ARM64 manual install (wget or curl)
#####   Intel / AMD x64 :
with wget:
```bash
wget -O pankha-agent https://github.com/Anexgohan/pankha/releases/latest/download/pankha-agent-linux_x64
chmod +x pankha-agent
```
or with curl:
```bash
curl -fsSLo pankha-agent https://github.com/Anexgohan/pankha/releases/latest/download/pankha-agent-linux_x64
chmod +x pankha-agent
```
#####  ARM64 (Raspberry Pi 5, etc.) :
with wget:
```bash
wget -O pankha-agent https://github.com/Anexgohan/pankha/releases/latest/download/pankha-agent-linux_arm64
chmod +x pankha-agent
```
or with curl:
```bash
curl -fsSLo pankha-agent https://github.com/Anexgohan/pankha/releases/latest/download/pankha-agent-linux_arm64
chmod +x pankha-agent
```
Then configure (works for both):
```bash
sudo ./pankha-agent --setup
```
List all commands: `./pankha-agent --help`
###
[](https://github.com/Anexgohan/pankha/wiki/Agents-Linux)
---
###  Windows Agent (.NET 8) :
Download **[pankha-agent-windows_x64.msi](https://github.com/Anexgohan/pankha/releases/latest/download/pankha-agent-windows_x64.msi)** from the latest release. The installer sets up the background service and the tray app. Right-click the tray icon → **Settings** → set the backend URL. Done.
Control your fans and monitor your temperatures from the dashboard!
[](https://github.com/Anexgohan/pankha/wiki/Agents-Windows)
---
##  How Pankha Fan Control works
     
A central **backend** (Docker container with Node.js, PostgreSQL, and a WebSocket hub) coordinates lightweight **agents** running on each machine you want to control.
**Components**
- **Backend** - Node.js + Express + WebSocket + PostgreSQL, deployed as a single Docker container
- **Frontend** - React + TypeScript + Vite, served directly as a Web GUI Dashboard on `http://:`
- **Linux agent** - single Rust binary using <15MB RAM and <1% CPU, `sysfs` hardware access, zero runtime dependencies
- **Windows agent** - self installing .NET 8 service using <25MB RAM and <1% CPU, capable of full LibreHardwareMonitor access to all sensors and fans on any Windows machine
**How it works**
- Agents push sensor and fan readings to the backend over WebSocket every few configurable seconds; the backend computes deltas and broadcasts changes only when needed to minimise bandwidth.
- The backend evaluates your fan curves and sends control commands back to agents in real time
- Frontend connects to the backend to display real-time sensor readings and fan speeds, and to send profile updates and config and user changes back to the backend
- If the backend is unreachable, agents enter **failsafe mode** - a configurable safe fan speed with a local emergency-temperature override
```
Browser <-HTTP/WebSocket-> Backend (Docker) <-WebSocket-> Agents <-Direct-> Hardware
```
[](https://github.com/Anexgohan/pankha/wiki/Architecture)
##  Documentation
[](https://github.com/Anexgohan/pankha/wiki)

- [Installation](https://github.com/Anexgohan/pankha/wiki/Server-Installation)
- [Configuration](https://github.com/Anexgohan/pankha/wiki/Server-Configuration)

- [Linux](https://github.com/Anexgohan/pankha/wiki/Agents-Linux)
- [Windows](https://github.com/Anexgohan/pankha/wiki/Agents-Windows)
- [Settings](https://github.com/Anexgohan/pankha/wiki/Agents-Advanced-Settings)

- [API Reference](https://github.com/Anexgohan/pankha/wiki/API-Reference)
- [Fan Profiles](https://github.com/Anexgohan/pankha/wiki/Fan-Profiles)

- [Troubleshooting](https://github.com/Anexgohan/pankha/wiki/Troubleshooting)
- [Build from Source](https://github.com/Anexgohan/pankha/wiki/Development-Build)
##  Contributing & Community
- **Discussions** - [GitHub Discussions](https://github.com/Anexgohan/pankha/discussions) for questions, ideas, and hardware reports
- **Issues** - [GitHub Issues](https://github.com/Anexgohan/pankha/issues) for bugs and feature requests
- **Discord** - coming soon
- **Pull Requests welcome** - fork the repo, branch as `feature/`, open a PR. CI runs typecheck (frontend + backend), `cargo check` on the Rust agents, and a Docker build before review.
## License
Pankha Fan Control is licensed under [AGPL-3.0](LICENSE) . Commercial licensing is also available - see [LICENSE-COMMERCIAL.md](LICENSE-COMMERCIAL.md).