HiveStation - Developer Workstation for Proxmox Virtual Environment
HiveStation is a community project that automates the full installation of a developer workstation built on Proxmox VE 9, on top of Debian 13 (Trixie): the hypervisor, a choice of disk layouts, bootable snapshots, an optional desktop, themes and a GNOME monitoring widget - installed in a reproducible sequence of scripts (S1 to S8) you can read and audit.
It is inspired by the Proxmox VE wiki article [Developer Workstations with Proxmox VE and X11](https://pve.proxmox.com/wiki/Developer_Workstations_with_Proxmox_VE_and_X11): the idea of running a full desktop on the very machine where Proxmox VE runs your VMs and containers.
*HiveStation is an independent community project. It is not affiliated with, nor endorsed by, Proxmox Server Solutions GmbH. Proxmox is a registered trademark of Proxmox Server Solutions GmbH.*
Current version: V21.3.5 - thin orchestrators
S1-21V9.sh ... S8-21V1.sh plus shared libraries (lib/) and runtime files shipped as real files (payload/), all messages bilingual FR/EN. The full step-by-step guide (HIVESTATION-V21-GUIDE-EN.md) is included in the archive.What it provides
- A Proxmox VE 9 hypervisor on Debian 13 (installed via debootstrap).
- Five disk modes, chosen at S1 launch (see table below) - Btrfs, LVM+EXT4, and since V21 ZFS as a first-class filesystem (single and mirror).
- Bootable snapshots: Snapper + grub-btrfs in Btrfs modes (roll back from the GRUB menu), Timeshift in LVM mode, and in ZFS modes Boot Environments with sanoid timelines - every snapshot bootable from the ZFSBootMenu menu, plus an APT hook that snapshots the Boot Environment before each operation.
- ZFS boot chain: themed GRUB on the ESP chains into ZFSBootMenu, which kexecs the Boot Environment - Boot Environments, snapshots and kernels selectable at boot; GRUB never probes the pool.
- Recovery from the boot menu: the "HiveStation Recovery" family - snapshots submenu and "Proven Kernel" entry in Btrfs modes, the full ZFSBootMenu menu (Boot Environments, snapshots, kernels, pool status) in ZFS modes.
- VM/LXC networking:
vmbr0 bridge with dnsmasq DHCP and dynamic NAT toward the WAN interface (ethernet or Wi-Fi).- Optional desktop: GNOME, KDE, XFCE, LMDE7 Cinnamon or COSMIC, with Flatpak + Flathub.
- Optional firmware & GPU: AMDGPU, Intel Wi-Fi, Realtek, NVIDIA (open modules recommended for Turing+, or proprietary legacy), optional XanMod kernel.
- Optional themes & tools: GRUB theme, adaptive Plymouth theme, asusctl/supergfxctl, GNOME Cinnamon-like layout, an optional Cockpit + ZFS manager GUI on ZFS installs, and a GNOME monitoring widget (CPU/mem/temps, SMART, storage health - Btrfs or ZFS pool - disk I/O, WAN uplink, Proxmox status, threshold notifications) whose privileged reads go through a single least-privilege root broker (one sudoers rule, per-verb allowlist; ZFS reads need no privilege at all). Drop a
logo.png next to S8 to brand every theme with your own logo.- Upgrade path:
hivestation-upgrade.sh brings an existing V15-V20 install up to date without reinstalling (inventory-driven, pre-upgrade restore point, --dry-run, --rollback); an existing V21 ZFS install is refreshed in place. Adopting ZFS remains a fresh install (no conversion).- Archive self-test:
hivestation-check.sh validates the archive before you deploy it (manifest, anti-residue, runtime-contract coherence).Disk modes (chosen at S1 launch)
| Mode | Disks | Filesystem | System snapshots | High availability |
|---|---|---|---|---|
| single | 1 | Btrfs (
single/dup) | Snapper + grub-btrfs | - || RAID1 | 2 identical | Btrfs RAID1 | Snapper + grub-btrfs | dual-ESP sync, SWAP failover, automatic disk replacement |
| LVM+EXT4 | 1 (64 GB or more) | ext4 on LVM (thin pool for VM/CT) | Timeshift (RSYNC) | - |
| ZFS single | 1 | ZFS pool (Boot Environments) | sanoid + bootable BE snapshots | - |
| ZFS mirror | 2 identical | ZFS mirrored pool | sanoid + bootable BE snapshots | dual-ESP sync, native degraded boot, guided disk replacement |
Install workflow
| Script | Phase | Runs from | Reboot after? |
|---|---|---|---|
|
S1 | Debian base (Btrfs, LVM or ZFS) + boot chain + network | Debian Live | No - run S2 first ||
S2 | HA scripts (RAID1 / ZFS mirror) + SSH | Debian Live (same session) | Yes ||
S3.1 | Proxmox kernel + PVE subvolumes (Btrfs) / dataset checks (ZFS) | Installed Debian | Yes ||
S3.2 | Proxmox VE (+ storage/snapshots choice, optional PCIe passthrough) | Installed Debian (PVE kernel) | Yes ||
S4 | Graphical desktop + Flatpak (optional) | Installed Proxmox | If a desktop was installed ||
S5 | Snapshots: Snapper+grub-btrfs (Btrfs), Timeshift (LVM) or sanoid + ZFS health (ZFS) | Installed Proxmox | Recommended ||
S6 | Firmware + NVIDIA (optional) | Installed Proxmox | If firmware was installed ||
S7 | vmbr0 + DHCP + NAT + boot tuning | Installed Proxmox | Yes ||
S8 | Themes, tools, monitoring widget, ZFS GUI (menu, optional) | Installed Proxmox | Recommended |Requirements
- 64-bit CPU (x86_64); VT-x/AMD-V recommended for nested virtualization.
- RAM: 4 GB minimum, 16 GB or more recommended. ZFS modes: budget the ARC cache on top of the VM needs (S1 asks for the cap, default 2 GiB).
- Disk: 1 disk (single, ZFS single, or 64 GB+ for LVM+EXT4), or 2 identical SSD/NVMe for RAID1 / ZFS mirror.
- UEFI firmware. Secure Boot is supported in the Btrfs/LVM modes; ZFS modes need Secure Boot off (the install-time boot chain carries an unsigned DKMS-built module).
- One ethernet or Wi-Fi interface. Internet access is required before running S1 (debootstrap downloads Debian; ZFS modes compile the module in the Live session, 5-10 minutes on the first run).
Optional disk encryption, TPM2 and Secure Boot
- LUKS2/argon2id encryption is opt-in in the three Btrfs/LVM modes: cleartext Btrfs
/boot + LUKS2 under the filesystem, passphrase typed once at the themed Plymouth prompt (keyboard layout honoured), bootable snapshots preserved. An encrypted RAID1 boots even with a missing disk (degraded initramfs unlock). Validated on real hardware in the Btrfs modes (RAID1 end to end, Secure Boot and hardware TPM 2.0 included); the LVM+LUKS variant is not yet validated on real hardware.- Native ZFS encryption is opt-in in both ZFS modes: aes-256-gcm on root/home/var, kernels inside the encrypted pool, one passphrase at the themed ZFSBootMenu prompt (keyboard layout honoured - FR and DE proven on real hardware), LUKS2 swap outside the pool. Use ASCII-only passphrases in ZFS modes. Hibernation stays EXPERIMENTAL (firmware-dependent).
- TPM2 auto-unlock (opt-in):
hivestation-tpm2.sh bind enrols the LUKS2 containers via clevis so the disks unlock without the passphrase; the passphrase always remains as fallback. Validated on a hardware TPM 2.0 as well as on a vTPM.- Active Secure Boot is supported in the Btrfs/LVM modes (S3.1 installs
proxmox-secure-boot-support so the PVE kernel boots) - validated on real hardware, including a full encrypted RAID1 install under Secure Boot with TPM2 auto-unlock. On NVIDIA machines the locked-down kernel rejects the DKMS modules - disabling Secure Boot in the BIOS is the fallback.All of it is documented in detail in the guide.
Warning - destructive procedure
S1 completely wipes the selected disk(s) - one disk in single/LVM/ZFS-single mode, two disks in RAID1 / ZFS mirror. All existing data is lost. Double-check the disk selection when prompted.
Why Btrfs or ZFS
Btrfs is in-kernel and gives subvolume snapshots that grub-btrfs exposes directly in the GRUB menu, so a bad update is a one-reboot rollback; RAID1 mirrors two disks with checksummed self-heal, without an out-of-tree module. ZFS brings Boot Environments (the whole root is a bootable, rollbackable unit), native encryption, and the zfspool storage - Proxmox's production storage - with VM and CT snapshots out of the box. LVM+EXT4 is there for those who prefer the classic Proxmox layout (LVM-thin for VMs, Timeshift for the system).
Download and usage
The archive is attached to this post:
HIVESTATION-V21-COMPLETE.tar.gz (V21.3.5).1. Extract it, read
HIVESTATION-V21-GUIDE-EN.md (full step-by-step guide, EN).2. Boot the target machine on a Debian 13 (Trixie) Live ISO, copy the scripts over.
3. Run
S1 then S2 from the Live, reboot, then S3.1 -> S8 from the installed system.4. Already on V15-V20? Run
hivestation-upgrade.sh instead of reinstalling.Feedback, bug reports and questions are welcome in this thread.
Attachments
Last edited: