|
|
||
|---|---|---|
| __pycache__ | ||
| data | ||
| PERSISTENCE.md | ||
| README.md | ||
| SETUP.md | ||
| backup.sh | ||
| deploy-prod.sh | ||
| docker-compose.yml | ||
| fan_controller.py | ||
| install.sh | ||
| requirements.txt | ||
| reset_password.py | ||
| server.log | ||
| setup-sensors-server.sh | ||
| web_server.py | ||
README.md
IPMI Controller
Advanced IPMI fan control for Dell servers with web interface, HTTP sensor support, multiple fan curves, and persistent configuration.
Features
- 🌡️ Dual Sensor Support - IPMI + HTTP (lm-sensors from Proxmox/host)
- 🌬️ Smart Fan Control - Automatic curves, manual control, panic mode
- 📊 3 Preset Curves - Balanced (default), Silent, Performance
- 👥 Fan Groups - Organize and control fans individually or in groups
- 🔍 Fan Identify - Visual fan identification
- 🎨 Themes - Dark and Light mode
- 📱 Responsive Web UI - Works on desktop and mobile
- 🔌 Public API - For external integrations
- 💾 Persistent Settings - Survives restarts and updates
Quick Start
Automated Install (Recommended)
git clone https://github.com/yourusername/ipmi-controller.git
cd ipmi-controller
chmod +x install.sh
sudo ./install.sh
This will:
- Install all dependencies
- Create systemd service for auto-start
- Set up persistent data directory
- Start the controller on boot
Manual Install
# Install dependencies
sudo apt-get install -y ipmitool python3-pip
pip3 install -r requirements.txt
# Run
python3 web_server.py
Access at http://your-server:8000
Initial Setup
- Complete the setup wizard (create admin + IPMI config)
- Login with your admin credentials
- (Optional) Set up HTTP sensor on your Proxmox host:
# On Proxmox server curl -O https://raw.githubusercontent.com/yourusername/ipmi-controller/main/setup-sensors-server.sh sudo ./setup-sensors-server.sh - Enable auto control and enjoy automatic fan management!
Persistence
All your settings are automatically saved to data/config.json:
✅ IPMI configuration
✅ HTTP sensor settings
✅ Fan curves (Balanced, Silent, Performance)
✅ User accounts
✅ Theme preference
✅ All control settings
Backups:
./backup.sh backup # Create backup
./backup.sh list # List backups
./backup.sh restore [file] # Restore from backup
Auto-backup via cron:
# Add to crontab (keeps 30 days of backups)
0 2 * * * /opt/ipmi-controller/backup.sh auto
Updating
cd ipmi-controller
git pull
# Settings are preserved automatically
sudo systemctl restart ipmi-controller
Fan Curves
Balanced (Default) - Best for most users:
30°C → 10% | 40°C → 15% | 50°C → 30% | 60°C → 55% | 70°C → 85% | 80°C → 100%
Silent - Noise-sensitive environments:
30°C → 5% | 40°C → 10% | 50°C → 15% | 60°C → 35% | 70°C → 70% | 80°C → 100%
Performance - Heavy workloads:
30°C → 20% | 40°C → 35% | 50°C → 55% | 60°C → 85% | 70°C → 100%
Documentation
- Setup Guide - Full installation instructions
- Persistence Guide - Backup and restore
- API Reference - Public API documentation
Docker
docker-compose up -d
Data persists in ./data directory.
Management Commands
# Status
sudo systemctl status ipmi-controller
# Logs
sudo journalctl -u ipmi-controller -f
# Restart
sudo systemctl restart ipmi-controller
# Stop
sudo systemctl stop ipmi-controller
Troubleshooting
IPMI Connection Failed:
- Verify IPMI IP, username, password
- Test:
ipmitool -I lanplus -H <ip> -U <user> -P <pass> mc info
No Temperature Data:
- Check HTTP sensor:
curl http://proxmox-ip:8888 - Verify
sensor_preferenceis set to "auto" or "http"
Settings Lost After Update:
- Ensure
data/directory is not deleted - Check file permissions:
ls -la data/
License
MIT License