# 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) ```bash 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 ```bash # 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 1. Complete the setup wizard (create admin + IPMI config) 2. Login with your admin credentials 3. (Optional) Set up HTTP sensor on your Proxmox host: ```bash # On Proxmox server curl -O https://raw.githubusercontent.com/yourusername/ipmi-controller/main/setup-sensors-server.sh sudo ./setup-sensors-server.sh ``` 4. 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:** ```bash ./backup.sh backup # Create backup ./backup.sh list # List backups ./backup.sh restore [file] # Restore from backup ``` **Auto-backup via cron:** ```bash # Add to crontab (keeps 30 days of backups) 0 2 * * * /opt/ipmi-controller/backup.sh auto ``` ## Updating ```bash 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](SETUP.md) - Full installation instructions - [Persistence Guide](PERSISTENCE.md) - Backup and restore - [API Reference](API.md) - Public API documentation ## Docker ```bash docker-compose up -d ``` Data persists in `./data` directory. ## Management Commands ```bash # 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 -U -P mc info` **No Temperature Data:** - Check HTTP sensor: `curl http://proxmox-ip:8888` - Verify `sensor_preference` is set to "auto" or "http" **Settings Lost After Update:** - Ensure `data/` directory is not deleted - Check file permissions: `ls -la data/` ## License MIT License