No description
Find a file
zaphod-black efba1948f6 Add web-based configuration interface to Docker dashboard
FEATURE: Settings page for configuring PBS backups via web UI

PROBLEM:
- Users had no way to configure PBS settings from the web dashboard
- Required manually setting environment variables or restarting containers
- Blank stats because no configuration existed

SOLUTION:
Added complete configuration management system:

API ENDPOINTS:
- GET /config - Retrieve current configuration
- POST /config - Save new configuration to /config/settings.json

DASHBOARD ENHANCEMENTS:
- New "⚙ Settings" button in Actions section
- Modal form with all configuration options:
  * PBS Repository (user@pam!token@host:port:datastore)
  * PBS Password/Token Secret
  * Backup Hostname
  * Backup Paths
  * Exclude Patterns (multi-line textarea)
  * Backup Schedule (cron expression)
  * Timezone
- Form validation and user-friendly placeholders
- Persistent storage to /config/settings.json
- Auto-refresh status after saving

DESIGN:
- Retro terminal aesthetic matching dashboard theme
- Blue/purple neon modal with dark background overlay
- Smooth fade-in animation
- Mobile-responsive form layout

TECHNICAL:
- Configuration persists across container restarts
- Environment variables can be overridden by config file
- JavaScript fetch API for async save/load
- Proper error handling and user feedback

Now users can configure everything from the web UI!

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-02 23:34:36 -06:00
docker Add web-based configuration interface to Docker dashboard 2025-11-02 23:34:36 -06:00
BACKUP-TYPES-GUIDE.md Add Docker-based cross-platform solution (v1.2.0) 2025-11-02 22:36:41 -06:00
CHANGELOG.md Add Docker-based cross-platform solution (v1.2.0) 2025-11-02 22:36:41 -06:00
pbs-client-installer.sh Update title bar from "Installer" to "Tool" 2025-11-02 21:47:43 -06:00
pbs-client-uninstaller.sh Add PBS client uninstaller script 2025-11-01 15:01:44 -05:00
quickstart.md Add Quick Start Guide for PBS client installation 2025-11-01 16:13:49 -05:00
README.md Fix Docker web dashboard with Python HTTP server + blue/purple neon theme 2025-11-02 23:25:10 -06:00
test-connection.sh Fix SSL fingerprint prompt causing authentication timeout 2025-11-01 17:21:10 -05:00
TROUBLESHOOTING.md Docs: Major README simplification + dedicated troubleshooting guide 2025-11-02 00:58:38 -05:00

PBSClientTool

Interactive tool for installing and managing Proxmox Backup Client on all platforms: Linux (native), Windows, and macOS (Docker).

screenshot-2025-11-02_18-48-02

Features

  • Cross-platform support - Native Linux + Docker for Windows/Mac
  • Multi-target backups - Backup to multiple PBS servers for redundancy
  • Auto-detection - Automatically detects your Linux distribution
  • File & block device backups - Supports .pxar (files) and .img (full disk) backups
  • Interactive setup - Guided configuration with connection testing
  • Flexible scheduling - Separate schedules for file and disk backups
  • System-wide install - Run from anywhere with PBSClientTool command

Quick Start

# Clone and install
git clone https://github.com/zaphod-black/PBSClientTool.git
cd PBSClientTool
sudo ./pbs-client-installer.sh --install

# Run from anywhere
sudo PBSClientTool

Prerequisites

On Your System

  • Root/sudo access
  • Internet connection
  • Supported OS: Ubuntu 20.04+, Debian 10+, Arch Linux
  • Arch only: Install yay first (instructions)

On Proxmox Backup Server

Before running the installer, set up an API token with backup permissions:

1. Create API Token:

  1. Login to PBS web interface (e.g., https://192.168.1.181:8007)
  2. Go to Configuration → Access Control → API Tokens
  3. Click Add
  4. Configure:
    • User: root@pam
    • Token ID: backupAutomations (or any name)
    • Privilege Separation: Leave unchecked
  5. Copy the secret immediately (shown only once!)

2. Grant Permissions:

  1. Go to Configuration → Access Control → Permissions
  2. Click Add → User Permission
  3. Configure:
    • Path: /datastore/YOUR-DATASTORE-NAME
    • User: root@pam!backupAutomations
    • Role: DatastoreBackup
  4. Click Add

Usage

Installation Wizard

Run the tool and follow the prompts:

sudo PBSClientTool

You'll be asked for:

  1. PBS Server: IP/hostname and port
  2. Authentication: API token (recommended) or password
  3. Backup Type:
    • File-level only (fast, selective restore)
    • Block device only (full disk image, bootable as VM)
    • Both (recommended) - Files daily + disk weekly
  4. Schedule: When to run backups
  5. Retention: How long to keep backups
  6. Encryption: Optional (recommended for sensitive data)

The installer will test your connection and create automated backup services.

Multi-Target Management

After installation, you can manage multiple backup targets:

Main Menu Options:

  1. List all backup targets - View all configured servers
  2. Add new backup target - Configure additional PBS server
  3. Edit existing target - Update connection/settings
  4. Delete target - Remove a backup destination
  5. Run backup now - Test or run immediate backup
  6. Reinstall PBS client - Reinstall the backup software
  7. Exit

Running Backups

Scheduled (automatic):

# Check timer status
sudo systemctl status pbs-backup-default.timer

# View next scheduled run
sudo systemctl list-timers pbs-backup-*

Manual (on-demand):

# Via menu (recommended - shows live progress)
sudo PBSClientTool
# Select option 5 (Run backup now)

# Via systemd
sudo systemctl start pbs-backup-default-manual.service

# Direct script execution
sudo /etc/proxmox-backup-client/backup-default.sh

Viewing Logs

# View recent backup logs
sudo journalctl -u pbs-backup-default.service -n 50

# Follow logs in real-time
sudo journalctl -fu pbs-backup-default.service

# List all backups on server
sudo -E proxmox-backup-client snapshot list

Command-Line Options

sudo PBSClientTool              # Interactive menu
sudo PBSClientTool --help       # Show help
sudo PBSClientTool --version    # Show version
sudo PBSClientTool --install    # Install to system
sudo PBSClientTool --uninstall  # Remove from system

Configuration Files

Multi-target setup:

  • /etc/proxmox-backup-client/targets/TARGET.conf - Target configurations
  • /etc/proxmox-backup-client/backup-TARGET.sh - Backup scripts
  • /etc/systemd/system/pbs-backup-TARGET.{service,timer} - Systemd units

Encryption key:

  • /root/.config/proxmox-backup/encryption-key.json - Main key
  • /root/pbs-encryption-key-*.txt - Paper backup (print and secure!)

Backup Types Explained

File-Level (.pxar)

  • Fast - Usually completes in 2-5 minutes
  • Selective - Restore individual files/folders
  • Efficient - Deduplication and compression
  • Best for: Daily backups, quick recovery

Block Device (.img)

  • Slow - Can take 20-30+ minutes
  • Complete - Entire disk image
  • Bootable - Can restore as VM on Proxmox
  • Best for: Weekly backups, disaster recovery

Hybrid (Both)

  • Recommended - Best of both worlds
  • Files backup daily (fast, efficient)
  • Disk image weekly (complete system backup)
  • Configure separate schedules for each

Encryption Key - Important!

⚠️ Your encryption key is the ONLY way to restore encrypted backups!

If you lose the key, your backups are permanently unrecoverable.

Best practices:

  1. Print the paper backup immediately (/root/pbs-encryption-key-*.txt)
  2. Store printed copy in safe location (fireproof safe, safety deposit box)
  3. Copy encryption-key.json to password manager
  4. NEVER store key on the same system being backed up
  5. Test key restoration regularly

Updating PBSClientTool

cd ~/dev/PBSClientTool
git pull
sudo ./pbs-client-installer.sh --install
# Confirm overwrite: yes

Your backup targets and configurations are preserved during updates.

Uninstallation

Remove command only (keeps backups and configs):

sudo PBSClientTool --uninstall

Complete removal (removes everything):

cd ~/dev/PBSClientTool
sudo ./uninstaller.sh

Docker Solution (Windows/Mac)

Want to backup Windows or macOS systems? Use the Docker-based solution:

cd docker
./build.sh
./deploy.sh

The Docker solution provides:

  • Cross-platform - Works on Windows, macOS, and Linux
  • Web Dashboard - Real-time monitoring with retro terminal UI (http://localhost:8080)
  • REST API - Remote management and monitoring
  • File-level backups - Daily automated backups
  • Easy deployment - Single container, simple configuration

Web Dashboard Features:

  • Live backup status and progress
  • System health monitoring
  • Backup history and logs
  • Manual backup trigger
  • Retro blue/purple neon aesthetic

See docker/README-DOCKER.md for complete documentation.

Platform Support Matrix:

Feature Native Linux Docker (Win/Mac)
File backups Yes Yes
Block device backups Yes No
Performance Best ⚠️ Good
Setup complexity Medium Easy

Troubleshooting

Having issues? See the Troubleshooting Guide for:

  • Connection test failures
  • Permission errors
  • Installation issues
  • Backup problems
  • Configuration issues
  • And more...

Supported Distributions

OS Versions Notes
Ubuntu 20.04, 22.04, 24.04 LTS only
Debian 10, 11, 12 Stable
Arch Linux Rolling Requires yay

Getting Help

Contributing

Issues and pull requests welcome!

License

MIT License

Credits

Created by Cade - Built on Proxmox Backup Client