An open API service indexing awesome lists of open source software.

https://github.com/macokay/proxmox-hive

A self-hosted dashboard for monitoring and applying updates across your Proxmox infrastructure — nodes, LXC containers, and VMs — from a single interface.
https://github.com/macokay/proxmox-hive

proxmox proxmox-hive proxmox-ve self-hosted update

Last synced: about 1 month ago
JSON representation

A self-hosted dashboard for monitoring and applying updates across your Proxmox infrastructure — nodes, LXC containers, and VMs — from a single interface.

Awesome Lists containing this project

README

          


Proxmox Hive

Proxmox Hive


A self-hosted dashboard for monitoring and applying updates across your Proxmox infrastructure — nodes, LXC containers, and VMs — from a single interface.



GitHub release

React
Node.js
Docker

License



Buy Me A Coffee

---

## Features

- **Multi-site** — manage multiple Proxmox hosts from one dashboard
- **Node updates** — detects available apt packages on the Proxmox host
- **LXC updates** — tracks package updates inside containers via `pct exec` (apt, apk, dnf/yum supported)
- **VM updates** — detects packages via QEMU guest agent
- **App updates** — detects new versions of Plex, Jellyfin, Sonarr, Radarr, and more
- **Scheduled checks** — automatic checks at 08:00 and 20:00 (configurable per site, with timezone support)
- **Live terminal** — real-time log output during updates via WebSocket
- **Notifications** — Discord, Slack, Microsoft Teams, and generic webhooks
- **Self-update** — update banner in the dashboard with one-click update; supports stable and beta channels
- **Setup wizard** — guided first-time configuration

---

## Requirements

| Requirement | Details |
|---|---|
| Server | Any host that can run Docker |
| Proxmox | Reachable via SSH from the Docker host |
| SSH access | Key-based or password auth (key recommended) |

---

## Installation

### Automatic (recommended)

Run the following on your **Proxmox node**:

```bash
bash -c "$(curl -fsSL https://raw.githubusercontent.com/macokay/proxmox-hive/main/install.sh)"
```

When run on a Proxmox node the script prompts you to choose between:

- **New LXC container** — creates a dedicated Debian 12 container, upgrades it, installs Docker and Proxmox Hive inside it, and configures console auto-login. Recommended.
- **This machine** — installs Docker and Proxmox Hive directly on the node.

When run on any other Debian/Ubuntu host (e.g. an existing LXC or VM) it installs directly without prompting.

After installation open `http://:3000` and follow the setup wizard.

### Manual

```bash
git clone https://github.com/macokay/proxmox-hive.git
cd proxmox-hive
docker compose up -d
```

Open `http://:3000` and follow the setup wizard.

---

## Configuration

### SSH access to Proxmox

Proxmox Hive connects to your Proxmox host over SSH. Run all commands in the Proxmox **Shell** tab or via `ssh root@PROXMOX-IP`.

---

#### Option A — Restricted user + SSH key ✓ Recommended

Creates a dedicated low-privilege user. SSH keys only, no password. Limits blast radius if credentials are ever compromised.

```bash
# Step 1 — Create user + restricted sudo
apt install sudo -y
adduser pvehive --disabled-password --gecos ""
echo "pvehive ALL=(ALL) NOPASSWD: /usr/bin/apt*,/usr/sbin/pct" | tee /etc/sudoers.d/pvehive
chmod 440 /etc/sudoers.d/pvehive

# Step 2 — Generate & install SSH key
ssh-keygen -t ed25519 -f ~/.ssh/pvehive -N ""
mkdir -p /home/pvehive/.ssh
cat ~/.ssh/pvehive.pub >> /home/pvehive/.ssh/authorized_keys
chmod 700 /home/pvehive/.ssh && chmod 600 /home/pvehive/.ssh/authorized_keys
chown -R pvehive:pvehive /home/pvehive/.ssh

# Step 3 — Print private key (copy output → paste into Proxmox Hive)
cat ~/.ssh/pvehive
```

In the setup wizard: username `pvehive`, paste the private key (not the `.pub` file).

---

#### Option B — Root + SSH key

No extra user needed. Simpler, but the SSH key has full root access to the host.

```bash
# Step 1 — Allow root SSH key login
sed -i 's/^#*PermitRootLogin.*/PermitRootLogin prohibit-password/' /etc/ssh/sshd_config
systemctl reload sshd

# Step 2 — Generate & install SSH key
ssh-keygen -t ed25519 -f ~/.ssh/pvehive -N ""
cat ~/.ssh/pvehive.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

# Step 3 — Print private key (copy output → paste into Proxmox Hive)
cat ~/.ssh/pvehive
```

In the setup wizard: username `root`, paste the private key.

---

#### Option C — Password auth ✗ Not recommended

Uses password authentication instead of SSH keys. Less secure — switch to Option A when possible.

```bash
# Step 1 — Create user with password
apt install sudo -y
adduser pvehive --gecos ""
echo "pvehive ALL=(ALL) NOPASSWD: /usr/bin/apt*,/usr/sbin/pct" | tee /etc/sudoers.d/pvehive
chmod 440 /etc/sudoers.d/pvehive
passwd pvehive

# Step 2 — Enable password authentication
sed -i 's/^#*PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config
systemctl reload sshd
```

In the setup wizard: username `pvehive`, select **Password** auth and enter the password set above.

---

### VM setup (QEMU guest agent)

VM package detection requires the QEMU guest agent running inside each VM. Without it the VM shows a warning and packages cannot be checked.

**1. Enable in Proxmox**

VM → Options → QEMU Guest Agent → Enable ✓ → OK

**2. Configure network (Cloud-Init VMs)**

If the VM was created from a Cloud-Init template and has no network: VM → Cloud-Init → IP Config → Edit → set to DHCP → Regenerate Image → reboot.

**3. Install the agent inside the VM**

```bash
sudo apt update && sudo apt install -y qemu-guest-agent
```

**4. Reboot the VM**

The agent starts automatically on boot.

---

### Data

Configuration is stored in a Docker volume (`proxmox-hive-data`) at `/data/config.json` inside the container.

---

## Updating

### Using the built-in self-update

When a new release is available, a banner appears at the top of the dashboard with an **Update now** button. Clicking it pulls the new release image and restarts the container automatically — no terminal needed.

You can also include **Proxmox Hive** as a target in an auto-update group (Settings → Auto-Update Groups). When the group runs at its scheduled time it checks GitHub for a new release and applies it the same way as the banner button.

### Manual update to latest release

```bash
TAG=$(curl -fsSL -o /dev/null -w '%{url_effective}' https://github.com/macokay/proxmox-hive/releases/latest | grep -o '[^/]*$' | sed 's/^v//') && [ -n "$TAG" ] && sed -i "s|image: .*proxmox-hive:.*|image: ghcr.io/macokay/proxmox-hive:${TAG}|" /opt/proxmox-hive/docker-compose.yml && docker compose -f /opt/proxmox-hive/docker-compose.yml pull && docker compose -f /opt/proxmox-hive/docker-compose.yml up -d
```

### Update to latest commit (pre-release)

> ⚠ The `latest` tag tracks the `main` branch and may include unreleased or unstable changes.

```bash
sed -i "s|image: .*proxmox-hive:.*|image: ghcr.io/macokay/proxmox-hive:latest|" /opt/proxmox-hive/docker-compose.yml && docker compose -f /opt/proxmox-hive/docker-compose.yml pull && docker compose -f /opt/proxmox-hive/docker-compose.yml up -d
```

---

## Known Limitations

- LXC containers must be **running** to have their packages checked or updated.
- VM package detection requires the **QEMU guest agent** to be installed and running.
- One Proxmox node per site.
- LXC containers running an unrecognised OS show an "Unsupported OS" badge and are skipped during updates.

---

## Credits

Built by [Mac O Kay](https://github.com/macokay).

---

## License

© 2026 Mac O Kay

Free to use and modify for personal, non-commercial use. Attribution appreciated if you share or build upon this work. Commercial use is not permitted.