Proxmox GUI: where is QDevice status?

MrPete

Well-Known Member
Aug 6, 2021
131
71
48
68
I've got a 2-node Proxmox cluster + QDevice (on a tiny raspberri pi ;) ) All is working well.
  • pvecm status correctly shows everything
  • I can't find anything in the GUI to hint that a QDevice exists or is present
Am I missing something, or is this simply missing from the GUI?

I'm thinking it would be quite helpful for admins to have visible awareness of all Proxmox-related device statuses in the GUI.
 
Yes, I use the Luckfox Lyra Ultra E with POE.

It is an amazing device that runs 10-15° cooler than my Pi3B+ that I tried before.
It uses <1W idle with the Ubuntu community image supplied also in the official doc.
The Pi3B+ was drawing 3W idle with POE hat (Waveshare) and PI Lite Image installed.

And it is one of the very few devices still affordable running Linux! (>50$ with POE & 8GB EMMC!)

I created a modular mount (→ see on Makerworld) to put it into one of my proxmox nodes using the SilverStone RM23-502-MINI case:

8f5b1ca8d66edaf1.jpg.webp

The ASCII art and display is a modified MOTD header file from the SBC (/etc/update-motd.d/00-header) that is loaded on boot and the art you can create yourself or using AI if you are lazy ... or efficient. :cool:

Bash:
#!/bin/sh
#
# 00-header - Algalon QDevice MOTD
#

# Colors
CYAN="\033[1;36m"
YELLOW="\033[1;33m"
RESET="\033[0m"

printf "\n"
printf "${CYAN}"
cat << 'EOF'
      █████╗ ██╗      ██████╗  █████╗ ██╗      ██████╗ ███╗   ██╗
     ██╔══██╗██║     ██╔════╝ ██╔══██╗██║     ██╔═══██╗████╗  ██║
     ███████║██║     ██║  ███╗███████║██║     ██║   ██║██╔██╗ ██║
     ██╔══██║██║     ██║   ██║██╔══██║██║     ██║   ██║██║╚██╗██║
     ██║  ██║███████╗╚██████╔╝██║  ██║███████╗╚██████╔╝██║ ╚████║
     ╚═╝  ╚═╝╚══════╝ ╚═════╝ ╚═╝  ╚═╝╚══════╝ ╚═════╝ ╚═╝  ╚═══╝
EOF
printf "${RESET}"

printf "${YELLOW}"
cat << 'EOF'
                   ◆  Q U O R U M   D E V I C E  ◆
EOF
printf "${RESET}\n"

# ===== Helper: draw a bar (safe ASCII) =====
draw_bar() {
    PERCENT=$1
    WIDTH=20
    FILLED=$((PERCENT * WIDTH / 100))
    EMPTY=$((WIDTH - FILLED))

    BAR=$(printf "%${FILLED}s" | tr ' ' '#')
    BAR="${BAR}$(printf "%${EMPTY}s" | tr ' ' '-')"
    printf "%s" "$BAR"
}

# ===== Memory (converted to real MB) =====
MEM_USED_MIB=$(free -m | awk '/Mem:/ {print $3}')
MEM_TOTAL_MIB=$(free -m | awk '/Mem:/ {print $2}')
MEM_USED=$(echo "scale=0; $MEM_USED_MIB * 1.048576 / 1" | bc)
MEM_TOTAL=$(echo "scale=0; $MEM_TOTAL_MIB * 1.048576 / 1" | bc)
MEM_PERCENT=$((MEM_USED_MIB * 100 / MEM_TOTAL_MIB))

# ===== Load =====
LOAD1=$(cut -d' ' -f1 /proc/loadavg)
LOAD5=$(cut -d' ' -f2 /proc/loadavg)
LOAD15=$(cut -d' ' -f3 /proc/loadavg)

LOAD_PERCENT=$(echo "$LOAD1 * 33" | bc | cut -d'.' -f1)
[ "$LOAD_PERCENT" -gt 100 ] && LOAD_PERCENT=100

# ===== Temperature =====
TEMP_RAW=$(cat /sys/class/thermal/thermal_zone0/temp 2>/dev/null || echo 0)
TEMP=$(echo "scale=1; $TEMP_RAW / 1000" | bc)
TEMP_PERCENT=$(echo "$TEMP" | cut -d'.' -f1)
[ "$TEMP_PERCENT" -gt 100 ] && TEMP_PERCENT=100

# ===== Output =====
printf "\n"
printf "  Host      : %s\n" "$(hostname)"
printf "  IP        : %s\n" "$(hostname -I | awk '{print $1}')"
printf "  Uptime    : %s\n" "$(uptime -p 2>/dev/null | sed 's/up //')"

printf "  Load      : ["
draw_bar "$LOAD_PERCENT"
printf "]  %s  %s  %s\n" "$LOAD1" "$LOAD5" "$LOAD15"

printf "  Memory    : ["
draw_bar "$MEM_PERCENT"
printf "]  %sMB / %sMB (%s%%)\n" "$MEM_USED" "$MEM_TOTAL" "$MEM_PERCENT"

printf "  Temp      : ["
draw_bar "$TEMP_PERCENT"
printf "]  %s°C\n" "$TEMP"

printf "\n"
 
Last edited: