Skip to content

macokay/proxmox-hive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

156 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 -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://<ip>:3000 and follow the setup wizard.

Manual

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

Open http://<your-server>: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.

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

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

# 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

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

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.

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.


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.

About

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

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors