Enjoy life. This is not a dress rehearsal, Friedrich Nietzsche.

In an ideal world, where money is not an issue, you might build your homelab server on top-of-the-line hardware, e.g., an Intel i9, 4x32 GB RAM, 4TB VM drives in RAID 1 pr 5, etc. In practice, most of us work with modest equipment and limited resources, but we still want get things done.
Proxmox VE is primarily designed as a bare‐metal hypervisor for managing VMs and LXC containers, with no extra software installed on the host itself. It is managed remotely through a web browser on another machine.
However, there are scenarios, such as a “developer workstation” or a kiosk in your homelab, where you might want to log into the Proxmox Web UI directly from the server’s local console, as if it were a desktop. Consider the following situations:
Rather than installing a GUI on Proxmox, a common alternative is to use SSH with X11 forwarding (or VNC) to run individual GUI apps —from text editors to file managers —on your workstation or any of your VMs and containers, while they display remotely.
Proxmox VE is designed as a bare-metal hypervisor for managing virtual machines (VMs) and containers. Installing a full desktop environment (like GNOME, KDE, or XFCE) is generally discouraged because: 1. Resource Overhead; 2. Security Risks; 3. Stability & Updates (Proxmox’s Debian base is tightly controlled).
Rather than installing a GUI on Proxmox, a common alternative is to use SSH with X11 forwarding to run individual GUI apps on your workstation, while they display remotely.
This is a step-by-step guide showing how to install and configure a lightweight graphical environment (the bare minimum) locally on a Proxmox server for kiosk-like access to the Proxmox Web UI.
This is a step-by-step guide showing how to install and configure a lightweight graphical environment (the bare minimum) locally on a Proxmox server for kiosk-like access to the Proxmox Web UI.
Step 1. Create a non-root user as root on Proxmox host: adduser YOUR-USERNAME. Follow the prompts to set a password and basic info. You may want to give your user sudo rights: usermod -aG sudo YOUR-USERNAME
Step 2. Install Minimal X11, Openbox, LightDM, and Browser
# Update the Proxmox host’s package lists and upgrade any existing packages
apt update && apt dist-upgrade -y
# Install only the minimal required packages:
apt install --no-install-recommends xorg openbox lightdm chromium pulseaudio -y
--no-install-recommends ensures that only the minimum necessary packages are pulled in, keeping the system as lean and lightweight as possible.Openbox: Alt+F4 Close windows. Ctrl + Alt + [← → ↑ ↓]: Switch to desktops. Ctrl + Alt + [Number]: Switch directly to desktop number.
# Open /etc/lightdm/lightdm.conf in your favorite editor
vi /etc/lightdm/lightdm.conf
# Find (or add) these lines under the [Seat:*] section and set autologin-user
autologin-user=YOUR-USERNAME # Specifies the username to log in automatically
# Set autologin-user-timeout to 0 for immediate login
autologin-user-timeout=0
autologin-session=openbox # Ensures LightDM starts an Openbox session for that user.
We will instruct Openbox to start Chromium automatically, maximize it, and point it at Proxmox’s local web interface (typically https://localhost:8006).
# Create (or edit) the per-user autostart file
mkdir -p /home/YOUR-USERNAME/.config/openbox
vi /home/YOUR-USERNAME/.config/openbox/autostart
chown -R YOUR-USERNAME:YOUR-USERNAME /home/YOUR-USERNAME/.config/openbox
chmod +x /home/kiosk/.config/openbox/autostart # Ensure the file is executable
vi /home/kiosk/.config/openbox/autostart
# In autostart, add the following lines:
# It prevents the screen from blanking or entering power-saving mode.
xset -dpms # Disable DPMS (Energy Star) features
xset s off # Disable screensaver
xset s noblank # Disable screen blanking
# To change the resolution in your Proxmox VM running Openbox.
# Open a terminal and run the following command to list available resolutions: xrandr --query
# Set your desired resolution:
xrandr -s 1920x1080
# Start Chromium in full-screen kiosk mode (no window borders, full screen) on Proxmox’s Web UI
# --no-sandbox is often needed when running Chromium as root.
# However, this reduces security.
# https://localhost:8006 is the default local Proxmox web address.
chromium --no-sandbox --kiosk https://localhost:8006 &
barrierc -f --no-tray --name myserver --disable-crypto [192.168.1.36]:24800
# Start the Barrier server (it shows how you might start the Barrier client to share keyboard/mouse from another machine) with the following options:
# -f: Run it in the foreground (not as a daemon).
# --no-tray: Disable the system tray icon.
# --name myserver: Set the name of the client to "myserver" (it is called my server because it is a homelab server running ProxMox, but for Barrier is the client
# meaning that the keyboard/mouse are attached to another computer
# --disable-crypto: Disable encryption for the connection.
# [192.168.1.36]:24800: Specify the IP address (Proxmox host) and port (24800) for the Barrier server to listen on.
In the barrier’s server (e.g., GNU/Linux, Nixos distribution, i3/config): exec –no-startup-id barrier
systemctl enable lightdm and reboot. Upon reboot, LightDM will auto-login YOUR-USERNAME with an Openbox desktop, and Openbox will immediately launch Chromium in kiosk mode, showing https://localhost:8006.
If anything goes wrong, connect over SSH and inspect logs: journalctl -u lightdm or tail -n 50 /home/YOUR-USERNAME/.xsession-errors.
# Install sudo
apt install sudo -y
# Add your user to the `sudo` group
usermod -aG sudo YOUR-USERNAME
visudo # Edit the sudoers file
# Allow members of group sudo to execute any command
sudo ALL=(ALL:ALL) ALL
# You will need to re-log-in with your user for the changes to take effect, then check:
id
> uid=1000(YOUR-USERNAME) gid=1000(YOUR-USERNAME) groups=1000(YOUR-USERNAME),27(sudo),100(users)
# vi .bashrc
# Many Proxmox-specific programs are found in `/usr/sbin`, so make sure to add that to your path:
export PATH="/usr/sbin:$PATH"