Initial commit: PVE Storage Manager TUI
This commit is contained in:
commit
946caeff90
85
README.md
Normal file
85
README.md
Normal file
@ -0,0 +1,85 @@
|
||||
# PVE Storage Manager TUI
|
||||
|
||||
Python Textual-based TUI for managing ZFS snapshots and LXC mountpoints on Proxmox VE.
|
||||
|
||||
## Features
|
||||
|
||||
- **Snapshots tab** — List, create, delete, rollback ZFS snapshots across all pools
|
||||
- **Schedules tab** — Set up auto-snapshot cron jobs per dataset with auto-pruning (keep last N)
|
||||
- **Datasets tab** — View all ZFS datasets with usage info
|
||||
- **LXC Mounts tab** — View, add, and remove mountpoints for LXC containers
|
||||
|
||||
## Installation
|
||||
|
||||
Run on **Proxmox host as root**.
|
||||
|
||||
### 1. Install dependencies
|
||||
|
||||
```bash
|
||||
apt update
|
||||
apt install -y python3-pip
|
||||
pip3 install textual --break-system-packages
|
||||
```
|
||||
|
||||
### 2. Copy the script
|
||||
|
||||
```bash
|
||||
# Copy pve_tui.py to the Proxmox host, then:
|
||||
chmod +x /root/pve_tui.py
|
||||
```
|
||||
|
||||
### 3. Run
|
||||
|
||||
```bash
|
||||
python3 /root/pve_tui.py
|
||||
```
|
||||
|
||||
### Optional: make it a command
|
||||
|
||||
```bash
|
||||
cp /root/pve_tui.py /usr/local/bin/pve-tui
|
||||
chmod +x /usr/local/bin/pve-tui
|
||||
```
|
||||
|
||||
Then just run `pve-tui` from anywhere.
|
||||
|
||||
## Keybindings
|
||||
|
||||
| Key | Action |
|
||||
|-----|--------|
|
||||
| `q` | Quit |
|
||||
| `r` | Refresh current view |
|
||||
| `n` | New snapshot |
|
||||
| `d` | Delete selected snapshot |
|
||||
| `s` | Add schedule |
|
||||
| `Tab` / arrow keys | Navigate tabs |
|
||||
| `↑` / `↓` | Move selection in table |
|
||||
|
||||
## How Scheduling Works
|
||||
|
||||
When you create a schedule, the tool:
|
||||
|
||||
1. Installs a helper script at `/usr/local/bin/pve-tui-snapshot.sh`
|
||||
2. Adds a cron entry in root's crontab between markers:
|
||||
```
|
||||
# === PVE-TUI AUTO SNAPSHOT BEGIN ===
|
||||
0 3 * * * /usr/local/bin/pve-tui-snapshot.sh RAID1_1TB 7
|
||||
# === PVE-TUI AUTO SNAPSHOT END ===
|
||||
```
|
||||
3. On each run, creates `DATASET@auto-YYYYMMDD-HHMMSS` and prunes
|
||||
oldest `auto-*` snapshots beyond the "keep last N" limit.
|
||||
|
||||
Manual snapshots (any name not starting with `auto-`) are **never** auto-pruned.
|
||||
|
||||
## Safety Notes
|
||||
|
||||
- **Rollback** destroys all newer snapshots. Always double-check before confirming.
|
||||
- **LXC mount changes** may require the container to be stopped (Proxmox will warn).
|
||||
- Crontab is only modified inside the marker block — your other cron entries are untouched.
|
||||
- The script uses `zfs`, `pct`, and `crontab` — no third-party ZFS tools required.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
- **"No datasets found"** → check `zfs list` works as root
|
||||
- **Cron not running** → check `systemctl status cron` and `/var/log/syslog`
|
||||
- **Textual rendering issues** → use a modern terminal (Alacritty, iTerm2, Windows Terminal)
|
||||
Loading…
x
Reference in New Issue
Block a user