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: 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.1 - thin orchestrators
S1-21V6.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:
vmbr0bridge 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.pngnext to S8 to brand every theme with your own logo. - Upgrade path:
hivestation-upgrade.shbrings 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.shvalidates 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 bindenrols 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-supportso 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.1).- Extract it, read
HIVESTATION-V21-GUIDE-EN.md(full step-by-step guide, EN). - Boot the target machine on a Debian 13 (Trixie) Live ISO, copy the scripts over.
- Run
S1thenS2from the Live, reboot, thenS3.1->S8from the installed system. - Already on V15-V20? Run
hivestation-upgrade.shinstead of reinstalling.
Feedback, bug reports and questions are welcome in this thread.
Attachments
Last edited: