Skip to content

Repository files navigation

HomeBMC Logo

HomeBMC

The Open Source Baseboard Management Controller for Homelabs.

Release Build Status License Discord


HomeBMC brings enterprise server management capabilities (like Dell iDRAC, HP iLO, or Supermicro IPMI) to consumer hardware using Raspberry Pi and similar Single Board Computers (SBCs).

It acts as a universal, out-of-band proxy giving you absolute control over your homelab servers, edge devices, and infrastructure, even when their operating systems are frozen or network interfaces are down.

(Screenshot Placeholder: Beautiful Dark-Mode Dashboard)

🌟 Why HomeBMC?

Traditional solutions like enterprise BMCs are:

  1. Expensive - Requiring proprietary hardware and licensing.
  2. Inflexible - Closed ecosystems with poor modern APIs.
  3. Power Hungry - Consuming 10-15W constantly.

HomeBMC transforms a standard $60 Raspberry Pi into a centralized controller that can manage multiple servers simultaneously. By wiring standard physical relays or optocouplers directly from your Pi's GPIO pins to your server's motherboard power headers, HomeBMC provides absolute hardware-level control.

✨ Key Features

  • 🔌 Hardware Power Control (GPIO): Execute hard resets, forced power-offs, and soft power-ons through standard physical relays or optocouplers.
  • 🐚 Graceful SSH Shutdowns: Automatically establish SSH connections to gracefully halt servers before cutting power.
  • 📡 Live Telemetry & Health Checks: Real-time monitoring via ICMP/TCP checks with UI updates powered by Server-Sent Events (SSE).
  • ⚙️ Rules Engine & Automation: Configure triggers to automatically fire actions (e.g., "If server X is offline for 10 mins, trigger hard reset relay").
  • 🔒 Enterprise Security: Role-Based Access Control (RBAC), JWT authentication, and secure rate limiting.
  • 🔌 Plugin System: Write your own Python plugins to integrate with Discord, Home Assistant, Proxmox, or any third-party API.
  • 🎨 No-Build Frontend: The beautiful, responsive UI is powered entirely by FastAPI, Jinja2, HTMX, and Alpine.js—meaning no Node.js build steps required.

(GIF Placeholder: Triggering a Power-On Sequence)

🏗 Architecture Overview

HomeBMC is built with modern, maintainable Python 3.12:

  • Backend: FastAPI (Async HTTP & WebSockets)
  • Database: SQLite (via SQLAlchemy 2.0 & async drivers) + Alembic migrations
  • Hardware Abstraction: gpiozero (with a Mock driver for non-Pi development)
  • Task Scheduling: APScheduler for background health checks and automations
  • Frontend: TailwindCSS + HTMX + Alpine.js

For a deep dive into the architecture, see our Architecture Review and System Diagrams.

💻 Supported Hardware

Current Support

  • Raspberry Pi 5 (Primary Target)
  • Standard 5V/3.3V Relay Boards
  • PC817 Optocouplers

Planned Support

  • Raspberry Pi 4 / Compute Module 4
  • Orange Pi / Libre Computer Boards
  • Intel NUC / Mini PCs (Using USB-to-GPIO adapters)
  • USB Relays (e.g., KMTronic, CH340)
  • HDMI Capture Cards (For Remote Console)
  • USB HID (For Virtual Keyboard/Mouse)

🚀 Installation & Quick Start

Docker Deployment (Recommended)

Running HomeBMC via Docker is the easiest way to deploy it to your Raspberry Pi.

# 1. Clone the repository
git clone https://github.com/swaraj429/homebmc.git
cd homebmc

# 2. Start the production environment
make prod

# 3. Access the dashboard
# Open your browser and navigate to http://<your-pi-ip>:80

On first boot, simply navigate to the web interface to complete the initial setup and create your Admin account. See the Docker Deployment Guide for advanced networking and volume configurations.

Local Development Setup

If you want to contribute or run HomeBMC natively without Docker:

# 1. Create a virtual environment
python -m venv venv
source venv/bin/activate

# 2. Install dependencies
pip install -r backend/requirements-dev.txt

# 3. Initialize the database
make init-db

# 4. Start the development server
make dev

Note: The development server automatically uses a Mock GPIO driver so you can build and test the app on Windows/macOS without needing actual Raspberry Pi hardware. See the Contributing Guide for more details.

📚 Documentation

Our documentation is highly detailed and designed for both users and enterprise contributors.

Core Documentation:

Architecture & Development:

Security & Hardware:

🧩 Plugin System

HomeBMC features a robust Python-based Plugin SDK. You can dynamically hook into the internal EventBus to trigger notifications or integrations. Check out the Plugin SDK Documentation to build your own extensions.

🤝 Contributing

We welcome contributions! HomeBMC is built to scale, and we need your help to add support for Virtual Media, HDMI Capture, and more. Check out the Developer Contributing Guide to get started with our CI/CD pipelines, branch strategies, and testing standards.

🛡️ Security

Security is a first-class citizen in HomeBMC. If you discover a vulnerability, please refer to our Security Policy and report it responsibly.

💬 Community

Join our growing community of homelabbers and developers!

📄 License

HomeBMC is distributed under the MIT License. See LICENSE for more information.


Built with ❤️ for Homelabbers everywhere.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages