A modern web-based application for controlling fan speeds on Dell T710 and compatible servers using IPMI. Features a clean web UI, automatic fan curves, panic mode for safety, and support for multiple servers.
Go to file
devmatrix c579cb7176 Add auto fan curves option to onboarding and start data polling after setup 2026-02-20 21:28:19 +00:00
__pycache__ Add 3-step onboarding wizard with IPMI/HTTP test buttons + auto-activate fan curve 2026-02-20 17:37:31 +00:00
data Add auto fan curves option to onboarding and start data polling after setup 2026-02-20 21:28:19 +00:00
static Replace auto-mode icon with Lucide rotate-cw icon 2026-02-20 20:06:35 +00:00
PERSISTENCE.md Add persistence: install script, backup/restore, systemd service, docker-compose, docs 2026-02-20 16:45:09 +00:00
README.md Add persistence: install script, backup/restore, systemd service, docker-compose, docs 2026-02-20 16:45:09 +00:00
SETUP.md Add slider sync, HTTP sensor docs, setup scripts 2026-02-20 16:38:34 +00:00
backup.sh Add persistence: install script, backup/restore, systemd service, docker-compose, docs 2026-02-20 16:45:09 +00:00
deploy-prod.sh Add production deployment script with systemd auto-start 2026-02-20 17:16:28 +00:00
docker-compose.yml Add persistence: install script, backup/restore, systemd service, docker-compose, docs 2026-02-20 16:45:09 +00:00
fan_controller.py Add 3-step onboarding wizard with IPMI/HTTP test buttons + auto-activate fan curve 2026-02-20 17:37:31 +00:00
install.sh Add persistence: install script, backup/restore, systemd service, docker-compose, docs 2026-02-20 16:45:09 +00:00
requirements.txt Add auth, SSH support, and web config 2026-02-20 15:15:11 +00:00
reset_password.py Working auth system 2026-02-20 15:39:18 +00:00
server.log Add auto fan curves option to onboarding and start data polling after setup 2026-02-20 21:28:19 +00:00
setup-sensors-server.sh Add persistence: install script, backup/restore, systemd service, docker-compose, docs 2026-02-20 16:45:09 +00:00
web_server.py Add auto fan curves option to onboarding and start data polling after setup 2026-02-20 21:28:19 +00:00

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

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

  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:
    # 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:

./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

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_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