A ZFS storage management module for Cockpit. Manage ZFS pools, file systems, snapshots, and disks through an intuitive web interface.
Note: This project replaces the older cockpit-zfs-manager, which is no longer maintained. If you are currently using
cockpit-zfs-manager, uninstall it before installing this module.
- A Linux system with ZFS installed and running (
zfsutils-linuxor equivalent) - Cockpit web console installed and running
- Python 3
- python3-libzfs (the Python bindings for libzfs — see Building python3-libzfs)
The module includes CLI-based fallbacks for environments where
python3-libzfscannot be installed. Core functionality (pools, VDev info, scrub/resilver status) will still work viazpoolcommands, but the full libzfs bindings are recommended for the best experience.
See the releases page for pre-built packages for supported distributions.
| Requirement | Purpose |
|---|---|
| Node.js (>= 18) | Build the frontend |
| Yarn | JavaScript package manager |
| jq | JSON processing (used by Makefile) |
| moreutils (sponge) | Used by bootstrap script |
| make | Build automation |
| git | Clone repos & submodules |
# Clone the repository (with submodules)
git clone --recurse-submodules https://github.com/45Drives/cockpit-zfs.git
cd cockpit-zfs
# Build the plugin
make
# Install system-wide (requires root)
sudo make install
# Restart cockpit to load the new module
sudo systemctl restart cockpit.socketThe module will be installed to /usr/share/cockpit/zfs/.
make install-localThis installs to ~/.local/share/cockpit/zfs-test/ and does not require root.
python3-libzfs provides the Python bindings for libzfs needed by the backend scripts. If pre-built packages are not available for your distribution, build from source:
# Install build dependencies
sudo apt install -y build-essential autoconf python3-dev libzfslinux-dev python3-setuptools python3-pip
pip3 install Cython==0.29.35
# Clone and build
git clone https://github.com/45Drives/python3-libzfs.git
cd python3-libzfs
./configure --prefix=/usr
make
sudo make install# Install build dependencies
sudo dnf install -y gcc make autoconf python3-devel libzfs5-devel python3-setuptools python3-pip
pip3 install Cython==0.29.35
# Clone and build
git clone https://github.com/45Drives/python3-libzfs.git
cd python3-libzfs
./configure --prefix=/usr
make
sudo make install| Error | Solution |
|---|---|
configure: error: A working zfs header is required |
Install ZFS development headers: sudo apt install libzfslinux-dev (Debian/Ubuntu) or sudo dnf install libzfs5-devel (RHEL/Rocky) |
ImportError: cannot import name 'setup' from 'setuptools' |
Install/upgrade setuptools: pip3 install --upgrade setuptools |
ModuleNotFoundError: No module named 'Cython' |
Install Cython: pip3 install Cython==0.29.35 |
After installing python3-libzfs, verify it works:
python3 -c "import libzfs; print('libzfs OK')"The following packages should be installed on the target system:
cockpitpython3python3-libzfs(see above)python3-dateutilsqlite3(orsqliteon RHEL/Rocky)jqmsmtp(for email notifications)
# Start the Vite dev server for hot-reload development
cd zfs
yarn devGPL-3.0+