157 lines
3.6 KiB
Markdown
157 lines
3.6 KiB
Markdown
# 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 <ip> -U <user> -P <pass> 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
|