IPMI-FanPilot - Docker Hub Repository
Short Description (max 100 characters)
Simple web-based IPMI fan controller for Dell, Supermicro, HP servers
Copy
Full Description
Overview
IPMI-FanPilot is a lightweight, web-based application for controlling server fan speeds via IPMI. Designed for homelab and enterprise environments, it provides intuitive fan speed management without requiring command-line expertise.
Key Features
Web-Based Interface : Modern, responsive dashboard accessible from any browser
Cross-Platform Support : Works on Windows, Linux, Docker
Encrypted Credentials : AES-256 encrypted storage of IPMI credentials
Manual & Auto Modes : Set specific fan speeds or use automatic mode
Multi-Server Support : Compatible with Dell, Supermicro, HP, Lenovo, IBM
Docker Ready : Secure, production-ready container with security patches
No Configuration Needed : Credentials auto-generated and encrypted
Health Monitoring : Built-in health checks for reliability
Supported Servers
Dell PowerEdge : R620, R640, R650, R720, R730, R750 (12G-13G)
Supermicro : Any model with IPMI 2.0 support
HP ProLiant : iLO-equipped servers
Lenovo ThinkSystem : XCC-equipped servers
IBM System X : IMM-equipped servers
Note : Direct fan control via IPMI may be limited or blocked on newer 14G/15G Dell servers with recent iDRAC firmware by design (security restriction from Dell).
Quick Start
Docker (Recommended)
docker pull dev-luigi/ipmi-fanpilot:latest
docker run -p 3000:3000 dev-luigi/ipmi-fanpilot:latest
Copy
Access at: http://localhost:3000
Docker Compose
version: '3.8'
services:
ipmi-fanpilot:
image: dev-luigi/ipmi-fanpilot:latest
ports:
- "3000:3000"
volumes:
- ipmi-data:/app
restart: unless-stopped
volumes:
ipmi-data:
Copy
Run with: docker-compose up -d
Direct Installation
git clone https://github.com/dev-luigi/IPMI-FanPilot.git
cd IPMI-FanPilot
npm install
node server.js
Copy
Usage
Open http://localhost:3000 in your browser
Enter IPMI credentials (IP, username, password)
Click "Save" to encrypt and store credentials
Adjust fan speed with the dial (0-100%)
Click "Confirm" to apply or "Auto Mode" for automatic control
View command history and status messages
Security Features
AES-256 Encryption : Credentials encrypted with unique IV per save
Non-Root Container : Docker image runs as non-root user
Security Patched : All vulnerabilities (CVE-2024-21538, CVE-2025-9230+) fixed
Input Validation : Protection against IPMI command injection
Health Checks : Automatic container health monitoring
Network Isolation : Designed for internal networks only
Requirements
Hardware : Any IPMI 2.0-compatible server
Network : Direct network access to server IPMI interface
Software : Docker OR Node.js 18+
Tools : ipmitool (included in Docker image)
System Requirements
CPU : 1 core (shared or dedicated)
RAM : 256 MB minimum (512 MB recommended)
Storage : 50 MB for Docker image (~45 MB)
Network : Local network access to IPMI (port 623 UDP/TCP)
Environment
Variable Default Description NODE_ENV production Deployment environment PORT 3000 Server listening port
API Endpoints
Method Endpoint Description POST /api/credentials/save Save encrypted credentials GET /api/credentials/load Load saved credentials DELETE /api/credentials/clear Delete saved credentials POST /api/execute Execute IPMI fan command GET /api/health Health check
Supported IPMI Commands
Manual Mode : Set fan speed 0-100%
Auto Mode : Server controls fan speed automatically
Preset Speeds : 20%, 30%, 50%, 70%, 100%
Limitations
R740XD / 14G-15G Servers : Fan control disabled in recent iDRAC firmware (Dell security restriction)
Network-Only : Requires network access to IPMI BMC
Single Server : Current version manages one server at a time
Windows Only Start : start.bat requires Windows (use Docker for Linux)
Troubleshooting
Cannot connect to IPMI:
Verify iDRAC/BMC IP address and credentials
Check network connectivity: ping <idrac-ip>
Ensure port 623 is accessible
Confirm ipmitool is installed
Credentials not saving:
Verify all fields are filled (IP, username, password)
Check application has write permissions
Inspect browser console for errors (F12)
Commands not executing:
Verify IPMI credentials are correct
Check server logs for error details
Confirm ipmitool is in system PATH
File Structure
IPMI-FanPilot/
├── server.js # Main Node.js application
├── package.json # Dependencies
├── package-lock.json # Locked versions
├── Dockerfile # Docker configuration
├── .gitignore # Git ignore rules
├── README.md # Full documentation
├── SECURITY.md # Security guidelines
├── LICENSE # License
└── public/
└── index.html # Web interface
Copy
Performance
Startup Time : < 2 seconds
Response Time : < 100ms per command
Memory Usage : ~30-50 MB running
Network Latency : Depends on IPMI network
Compliance & Legal
License : MIT
Author : Luigi Tanzillo (@dev-luigi)
Status : Open Source
Support : Community-driven (GitHub Issues)
Known Issues
Some Dell R740XD/14G servers block IPMI fan control (firmware restriction)
Requires local network access - not suitable for internet-facing deployments
Single connection at a time (not concurrent)
Future Roadmap
Multi-server management dashboard
Temperature monitoring and graphing
Scheduled fan control
Authentication system
Email/webhook notifications
Prometheus metrics export
Web UI dark mode
Mobile app
Getting Help
Development
Built with:
Node.js 18+
Express.js 4.18
ipmitool
AES-256 Encryption
Statistics
Lines of Code : ~500
Dependencies : 1 (Express.js)
Image Size : 45 MB
Startup Time : 2 seconds
Docker Image Details
Base Image : node:18-alpine3.20
OS : Alpine Linux 3.20
Size : ~45 MB (compressed ~15 MB)
User : nodejs (non-root)
Health Check : Every 30 seconds
Restart Policy : Configurable
Tags Available
latest - Most recent stable version
1.0.0 - Specific version tags
slim - Minimal variant (future)
alpine - Alpine-based variant (current)
Contributing
Contributions welcome! Please:
Fork the repository
Create a feature branch
Test your changes
Submit a pull request
Disclaimer
This application is provided "AS-IS" without warranty. The author is not responsible for:
Server damage or malfunction from improper fan control
Data loss or security breaches
Warranty voidance on enterprise hardware
Any other damages from misuse
Always test in non-production environments first. Keep servers monitored when making fan adjustments.
Related Projects
IPMI Tools
Server Management Dashboards
Homelab Tools
IoT Applications
License
MIT License - See LICENSE file for details
Last Updated : November 2025
Current Version : 1.0.0
Maintained By : Luigi Tanzillo (@dev-luigi)