Uncategorized

Pankha SelfHosted Centralized Fan Control Center.

Pankha: A Breath of Fresh Air for Your Homelab’s Fan Control

Taking the Hassle Out of Managing Your Linux Systems’ Cooling

I’ve always been fascinated by the world of homelabs and the endless possibilities they offer. However, as I delved deeper into the realm of Linux systems and servers, I realized that one crucial aspect was often overlooked: fan control. It’s astonishing how something as simple as regulating fan speeds can become a daunting task, especially when dealing with multiple systems. This frustration sparked an idea, and I’d like to introduce you to Pankha, a web-based fan control system designed to simplify the process.

For those who run homelabs or work with Linux systems, you’re likely familiar with the pain of manual PWM tweaking through sysfs, ancient scripts that stop working after kernel updates, or vendor-specific tools that only support specific hardware. The lack of visual feedback and the guesswork involved can be overwhelming, not to mention the difficulty of monitoring and controlling fans across multiple machines. It’s a problem that scales poorly, and existing solutions often fall short.

The Problem with Current Fan Control Solutions

The current landscape of fan control solutions is, to say the least, underwhelming. You’re often forced to choose between:

  • Manually tweaking PWM settings through sysfs, which can be a tedious and time-consuming process, especially in the middle of the night when your system overheats.
  • Using outdated scripts that may work until your kernel updates, leaving you scrambling to find a new solution.
  • Relying on vendor-specific tools that only work with specific hardware, limiting your flexibility and options.
  • Lacking visual feedback, making it difficult to monitor and adjust fan speeds effectively.
  • Dealing with the complexities of GPU passthrough to a VM or HBA, which can further complicate fan control and monitoring.

These solutions not only fail to provide a comprehensive and user-friendly experience but also neglect the needs of those managing multiple systems. The process of copying configurations, SSH-ing into boxes, and hoping changes stick after a reboot can be a nightmare.

Introducing Pankha: A New Approach to Fan Control

Pankha is a web-based fan control system built from the ground up to address the shortcomings of existing solutions. Its core features include:

  • Distributed Architecture: A lightweight agent runs on each system, automatically discovering hardware and reporting back to the central dashboard. This eliminates the need for manual configuration files and tedious hwmon path hunting.
  • Real-Time Everything: WebSocket connections enable real-time monitoring and control, allowing you to see temperature changes and fan speed adjustments as they happen.
  • Smart Fan Curves: Create custom fan profiles with temperature curves, which are dynamically calculated and adjusted by the system. This feature is accessible through the web UI, eliminating the need for config files, restarts, or SSH.
  • Hardware Agnostic: Pankha works with a wide range of hardware, including IT8628, k10temp, coretemp, nvme sensors, and ACPI thermal zones. It’s designed to be compatible with various motherboard controllers, even GPU fan control, if the hardware exposes it.

Pankha’s architecture is straightforward yet effective, comprising agents that run on each system, a backend that maintains system state and handles profile assignments, and a frontend that provides real-time updates. The fan control algorithm uses linear interpolation between temperature curve points, ensuring proper error handling, state management, and the ability to update curves without restarting anything.

Current Status and Future Developments

Pankha is currently in testing, with four production systems running 24/7 on AMD Ryzen, Intel, and ARM hardware, as well as a development environment on Raspberry Pi for testing ARM compatibility. The roadmap includes:

  • Historical temperature and fan speed graphs
  • Alerting when temperatures exceed thresholds
  • More sophisticated fan control algorithms, including hysteresis to prevent oscillation and predictive curves
  • Support for more exotic hardware, such as GPU fans and RAID controller fans
  • A mobile app for quick checks
  • Multi-user support with proper authentication via Oauth2

I’m excited to share Pankha with the community, and I’m eager to receive feedback from those who face similar challenges with fan control. If you’re interested in testing Pankha or have ideas for improvements, I’d love to hear from you.

Technical Deep Dive

For the curious, Pankha’s architecture is built using Node.js/TypeScript on the backend, React on the frontend, Python agents, and a PostgreSQL database, all running in Docker for easy deployment. The fan control algorithm uses linear interpolation between temperature curve points, with proper error handling and state management.

Special identifiers enable features like controlling fans based on the hottest CPU core or using the highest temperature on a system. The system figures out which sensors match and calculates the max temperature dynamically.

Conclusion

Pankha is a solution designed to simplify the complexities of fan control in homelabs and Linux systems. Its real-time monitoring, custom fan curves, and hardware-agnostic design make it an attractive option for those seeking a more streamlined and user-friendly experience. I’m excited to continue developing Pankha and invite you to join me on this journey.

Pankha: Łatwiejsze Zarządzanie Wentylatorami w Twoim Homelabie

Wyeliminuj Kłopoty z Zarządzaniem Chłodzeniem w Systemach Linux

Zawsze byłem fascynowany światem homelabi i nieograniczonymi możliwościami, które oferują. Jednakże, gdy zagłębiłem się w świat systemów Linux i serwerów, zrozumiałem, że jeden kluczowy aspekt jest często pomijany: kontrola wentylatorów. To zdumiewające, jak coś tak proste jak regulacja prędkości wentylatorów może stać się przytłaczającym zadaniem, szczególnie przy pracy z wieloma systemami. Ten problem zainspirował mnie do stworzenia Pankhi, sieciowego systemu kontroli wentylatorów zaprojektowanego w celu uproszczenia tego procesu.

Dla tych, którzy prowadzą homelab lub pracują z systemami Linux, prawdopodobnie znają bolączkę ręcznej regulacji PWM przez sysfs, starzejących się skryptów, które przestają działać po aktualizacji jądra, lub specyficznych dla producenta narzędzi, które wspierają tylko określone urządzenia. Brak wizualnej informacji zwrotnej i podejścia prób i błędów może być przytłaczający, nie wspominając o trudnościach z monitorowaniem i kontrolą wentylatorów na wielu maszynach. Jest to problem, który nie skaluje się dobrze, a istniejące rozwiązania często są niewystarczające.

Problem z Obecnymi Rozwiązaniami Kontroli Wentylatorów

Obecny krajobraz rozwiązań kontroli wentylatorów jest, delikatnie mówiąc, niezadowalający. Często musisz wybierać między:

  • Ręczną regulacją ustawień PWM przez sysfs, co może być nużącym i czasochłonnym procesem, szczególnie w środku nocy, gdy Twój system przegrzewa się.
  • Używaniem starzejących się skryptów, które mogą działać até aktualizacji jądra, pozostawiając Cię w sytuacji poszukiwania nowego rozwiązania.
  • Poleganiem na specyficznych dla producenta narzędziach, które wspierają tylko określone urządzenia, ograniczając Twoją elastyczność i możliwości.
  • Brakiem wizualnej informacji zwrotnej, utrudniającym skuteczne monitorowanie i regulację prędkości wentylatorów.
  • Zarządzaniem złożonościami passthrough GPU do maszyny wirtualnej lub HBA, co może dalej komplikować kontrolę i monitorowanie wentylatorów.

Te rozwiązania nie tylko nie zapewniają kompleksowego i przyjaznego użytkownikowi doświadczenia, ale także pomijają potrzeby tych, którzy zarządzają wieloma systemami. Proces kopiowania konfiguracji, łączenia się z systemami przez SSH i nadziei, że zmiany zostaną zachowane po ponownym uruchomieniu, może być koszmarem.

Poznaj Pankhę: Nowe Rozwiązanie Kontroli Wentylatorów

Pankha to sieciowy system kontroli wentylatorów zaprojektowany od podstaw w celu rozwiązania wad istniejących rozwiązań. Jego kluczowe funkcje obejmują:

  • Architektura Rozproszona: Lekki agent działa na każdym systemie, automatycznie wykrywając urządzenia i raportując z powrotem do centralnego pulpitu. To eliminuje potrzebę ręcznych plików konfiguracyjnych i mozolnego przeszukiwania ścieżek hwmon.
  • Wszystko w Czasie Rzeczywistym: Połączenia WebSocket umożliwiają monitorowanie i kontrolę w czasie rzeczywistym, pozwalając Ci zobaczyć zmiany temperatury i regulację prędkości wentylatorów w czasie rzeczywistym.
  • Inteligencka Krzywa Wentylatorów: Twórz niestandardowe profile wentylatorów z krzywymi temperatury, które są dynamicznie obliczane i regulowane przez system. Ta funkcja jest dostępna za pośrednictwem interfejsu webowego, eliminując potrzebę plików konfiguracyjnych, ponownych uruchomień czy połączeń SSH.
  • Obojętność w Stosunku do Sprzętu: Pankha działa z szerokim zakresem urządzeń, w tym IT8628, k10temp, coretemp, czujniki nvme i strefy termiczne ACPI. Została zaprojektowana w celu kompatybilności z różnymi kontrolerami płyt głównych, nawet kontrolą wentylatorów GPU, jeśli sprzęt ją udostępnia.

Architektura Pankhi jest prosta, lecz skuteczna, składając się z agentów działających na każdym systemie, backendu, który utrzymuje stan systemu i obsługuje przypisanie profili, oraz frontendu, który zapewnia aktualizacje w czasie rzeczywistym. Algorithm kontroli wentylatorów wykorzystuje interpolację liniową między punktami krzywej temperatury, zapewniając właściwą obsługę błędów, zarządzanie stanem i możliwość aktualizacji krzywych bez ponownego uruchamiania.

Bieżący Status i Przyszłe Rozwój

Pankha jest obecnie w fazie testów, z czterema systemami produkcyjnymi działającymi 24/7 na sprzęcie AMD Ryzen, Intel i ARM, a także środowiskiem developerskim na Raspberry Pi do testowania kompatybilności z ARM. Plan rozwoju obejmuje:

  • Wykresy historyczne temperatury i prędkości wentylatorów
  • Alarmy przy przekroczeniu progów temperatury
  • Bardziej zaawansowane algorytmy kontroli wentylatorów, w tym histereza w celu zapobiegania oscylacji i krzywe predykcyjne
  • Wsparcie dla bardziej egzotycznego sprzętu, takiego jak wentylatory GPU i kontrolery RAID
  • Aplikację mobilną do szybkich sprawdzeń
  • Wsparcie dla wielu użytkowników z właściwą autentykacją za pośrednictwem Oauth2

Jestem podekscytowany udostępnieniem Pankhi społeczności i zainteresowany otrzymaniem opinii od tych, którzy spotykają się z podobnymi wyzwaniami z kontrolą wentylatorów. Jeśli jesteś zainteresowany testowaniem Pankhi lub masz pomysły na ulepszenia, bardzo chciałbym usłyszeć od Ciebie.

Techniczne Zagłębienie

Dla ciekawych, architektura Pankhi jest zbudowana z wykorzystaniem Node.js/TypeScript na backendzie, React na frontendzie, agentów Python i bazy danych PostgreSQL, wszystko uruchomione w Dockerze dla łatwej instalacji. Algorithm kontroli wentylatorów wykorzystuje interpolację liniową między punktami krzywej temperatury, z właściwą obsługą błędów i zarządzaniem stanem.

Specjalne identyfikatory umożliwiają funkcje takie jak kontrola wentylatorów na podstawie najgorętszego rdzenia CPU lub użycie najwyższej temperatury w systemie. System wykrywa, które sensory są dopasowane, i dynamicznie oblicza maksymalną temperaturę.

Podsumowanie

Pankha to rozwiązanie zaprojektowane w celu uproszczenia złożoności kontroli wentylatorów w homelabiach i systemach Linux. Jego monitorowanie w czasie rzeczywistym, niestandardowe krzywe wentylatorów i obojętność w stosunku do sprzętu czynią ją atrakcyjną opcją dla tych, którzy szukają bardziej uporządkowanego i przyjaznego użytkownikowi doświadczenia. Jestem podekscytowany kontynuowaniem rozwoju Pankhi i zapraszam Cię do przyłączenia się do tej podróży.

Leave a Reply

Your email address will not be published. Required fields are marked *

WordPress Appliance - Powered by TurnKey Linux