Skip to main content

Docker (recomendado)

Linux. --network host es necesario para que el contenedor pueda alcanzar tus BMC directamente en tu red local por el puerto UDP 623 (el puerto IPMI/RMCP+). Sin red de host, el contenedor queda detrás del NAT de Docker y no puede completar una sesión IPMI con tu hardware.
Windows / macOS. Docker Desktop no admite la red de host, así que mapea el puerto en su lugar:
Ambos comandos montan un volumen con nombre (ipmideck-data) en /data. Ese volumen contiene tu config.yaml, la base de datos SQLite y la clave de cifrado que protege tus credenciales de BMC almacenadas, así que sobreviven a un reinicio, una actualización o un docker rm. Sin -v obtienes una instalación nueva y vacía cada vez que se recrea el contenedor. Una vez que el contenedor esté activo, abre http://<your-ip>:3000 y sigue el asistente de configuración.
La imagen publicada está en Docker Hub en hub.docker.com/r/devluigi06/ipmideck.

pip

El paquete pip requiere tener ipmitool instalado en el host, ipmideck delega en ipmitool para cada operación IPMI. Instálalo primero desde el gestor de paquetes de tu distribución (por ejemplo apt install ipmitool o dnf install ipmitool).
En Debian 12+ y Ubuntu 23.04+, un pip install normal se niega a ejecutarse y falla con error: externally-managed-environment. Esto es lo esperado, consulta Instalar en Debian y Ubuntu más abajo.

Instalar en Debian y Ubuntu (PEP 668)

En un sistema Debian 12+ o Ubuntu 23.04+ de serie, pip install ipmideck se detiene con:
Esto no es un fallo de ipmideck. La distribución reserva el Python del sistema para su propio gestor de paquetes, apt depende de él, y bloquea que pip escriba en él. Hay dos formas admitidas de instalar ipmideck de todos modos.

pipx (recomendado)

pipx instala una aplicación de Python de línea de comandos en su propio entorno virtual aislado y expone el comando resultante de forma global, sin tocar nunca el Python del sistema. Esa es exactamente la forma de ipmideck, así que este es el camino que recomendamos:
pipx coloca el ejecutable en ~/.local/bin. Debian y Ubuntu añaden ese directorio a tu PATH automáticamente una vez que existe, pero solo para sesiones de shell nuevas, así que la primera instalación imprime una advertencia e ipmideck aún no se encuentra en la shell desde la que lo ejecutaste:
Abre una nueva terminal (o reconéctate por SSH) y el comando funciona. Si tu shell aún no lo encuentra, añade el directorio explícitamente y luego inicia una nueva shell:
Verifica la instalación con el modo demo, que no necesita hardware real:

venv

Un entorno virtual esquiva PEP 668 de la misma forma, y es la opción correcta si trabajas desde un checkout de fuente:
El comando ipmideck está disponible siempre que ese entorno esté activado.
pip install --break-system-packages ipmideck también funciona, pero escribe directamente en el Python del sistema y puede romper apt si una versión de dependencia colisiona. Prefiere pipx o un venv.

Dónde almacena los datos ipmideck

ipmideck escribe su configuración y base de datos en un directorio de datos:
  • Docker: /data dentro del contenedor (la imagen define IPMIDECK_DATA_DIR=/data; persístelo con un volumen).
  • pip en Linux: /data de forma predeterminada, en el que un usuario sin privilegios de root normalmente no puede escribir.
  • pip en Windows: ./data, relativo al directorio desde el que ejecutas ipmideck.
En Linux, ejecutar ipmideck como usuario normal sin sobrescribir el directorio de datos falla al arrancar con PermissionError: [Errno 13] Permission denied: '/data'. Apunta IPMIDECK_DATA_DIR a un directorio de tu propiedad, como se muestra abajo.
Apunta el directorio de datos a un lugar en el que puedas escribir:
Puedes sobrescribir la ubicación en cualquier plataforma con la variable de entorno IPMIDECK_DATA_DIR. Este directorio contiene config.yaml, la base de datos SQLite y el archivo de clave de cifrado usado para proteger tus credenciales de BMC almacenadas. Consulta Configuración y Ejecutar ipmideck para más detalles.

Ejecutar como servicio (Linux)

ipmideck start en una terminal abre la consola interactiva y se detiene cuando cierras la sesión. Para mantener ipmideck en ejecución en segundo plano e iniciarlo en el arranque, ejecútalo bajo systemd en su lugar. Crea un usuario dedicado, instala ipmideck para él con pipx y dale un directorio de datos de su propiedad:
Luego escribe la unidad:
Habilítala e iníciala:
Bajo systemd no hay terminal conectada, así que ipmideck omite la consola interactiva y emite registros simples al journal (journalctl -u ipmideck -f), exactamente como el contenedor de Docker. systemctl stop envía SIGTERM, que activa el mismo apagado controlado que devuelve el control del ventilador a tus BMC. Consulta Modo headless / sin TTY.

Próximos pasos