DOCUMENTATION UPDATE:
Added comprehensive Docker instructions to README:
CHANGES:
- Added "🚧 IN DEVELOPMENT" warning to Docker section
- Emphasized native Linux installer as stable production version
- Added step-by-step Quick Start instructions:
1. Build the image
2. Run container with volume mounts
3. Configure via web UI
- Included examples for different backup paths
- Added "Configuration UI" to features list
- Clarified Settings page workflow
ORGANIZATION:
- Docker section appears AFTER all native Linux sections
- Clear warning that Docker is for testing/cross-platform use
- Native Linux positioned as primary, stable solution
This makes it clear to users:
- Native Linux = Production ready ✅
- Docker = Development/Testing 🚧🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
PROBLEM SOLVED:
The netcat-based HTTP server had a fundamental bidirectional pipe issue:
- `( read method path ) | nc -l` only connects stdout→stdin in one direction
- The `read` command couldn't receive HTTP request data from nc
- All requests returned "Not found" despite correct routing logic
SOLUTION:
- Created api-server.py: Proper Python HTTP server using http.server
- Handles dashboard (GET /), status, health, logs, and backup trigger (POST)
- Full request/response handling with proper HTTP headers
- Replaces broken netcat approach with robust solution
DASHBOARD ENHANCEMENTS:
- Changed from green terminal theme to blue/purple neon aesthetic
- Primary: #00d4ff (cyan blue)
- Accent: #aa00ff (purple)
- Background: #0a0a14 (dark blue-black)
- Increased all font sizes 2-4px for better readability
- Enhanced button padding and spacing
- More visible, high-contrast interface
TECHNICAL DETAILS:
- Dockerfile: Replaced netcat-openbsd with python3 dependency
- api-server.sh: Now simple wrapper that exec's Python script
- api-server.py: Full-featured HTTP server with JSON/HTML responses
- dashboard.html: Updated color scheme and typography
TESTING:
✅ Dashboard loads at http://localhost:8080/✅ /status endpoint returns JSON
✅ /health endpoint working
✅ /logs endpoint working
✅ Real-time backup monitoring ready
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major addition: Full Docker implementation for Windows, macOS, and Linux support
New Features:
- Docker container with PBS client in Debian environment
- Platform-specific docker-compose files (linux/windows/macos)
- Daemon mode with internal cron scheduler
- One-shot backup mode for manual execution
- Optional REST API server for remote management
- Health monitoring and status endpoints
- Automatic encryption key generation and management
Docker Structure:
- docker/Dockerfile - Container build definition
- docker/scripts/ - Entrypoint, backup, healthcheck, and API scripts
- docker/build.sh - Build script for Docker image
- docker/deploy.sh - Interactive deployment script
- docker/docker-compose-*.yml - Platform-specific configurations
Documentation:
- docker/README-DOCKER.md - Complete Docker documentation
- docker/QUICKSTART-DOCKER.md - Quick start guide
- docker/DOCKER-SOLUTION-SUMMARY.md - Architecture overview
- BACKUP-TYPES-GUIDE.md - File vs block device backup guide
Updated:
- README.md - Added cross-platform support section and platform matrix
- CHANGELOG.md - Documented all Docker features
This enables PBSClientTool to backup Windows and Mac systems via Docker,
while maintaining native Linux performance for full disk images.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added ability to install the script system-wide, making it available
as a command from anywhere on the system. No more need to navigate
to the script directory or remember the path.
NEW FEATURES:
1. Command-line argument support:
- --install : Install to /usr/local/bin/PBSClientTool
- --uninstall : Remove from system (keeps configs)
- --help, -h : Show comprehensive help message
- --version, -v : Show version information
- (no args) : Run interactive menu (default)
2. Installation function (install_script):
- Detects if already installed
- Asks for confirmation before overwriting
- Copies script to /usr/local/bin/PBSClientTool
- Sets executable permissions
- Shows usage examples after installation
3. Uninstallation function (uninstall_script):
- Removes /usr/local/bin/PBSClientTool
- Preserves backup targets and configurations
- Warns about difference vs complete removal (uninstaller.sh)
- Requires confirmation before proceeding
4. Help system:
- Comprehensive --help message with examples
- Documents all command-line options
- Shows features and documentation link
- Formatted for easy reading
IMPLEMENTATION:
- Added SCRIPT_NAME and INSTALL_PATH constants (lines 13-14)
- Added install_script() function (lines 1995-2032)
- Added uninstall_script() function (lines 2035-2067)
- Added show_help() function (lines 2070-2113)
- Added show_version() function (lines 2116-2118)
- Added argument parsing before main() (lines 2325-2348)
- Updated README with installation instructions
- Updated CHANGELOG with new features
USAGE EXAMPLES:
Install to system:
cd PBSClientTool
sudo ./pbs-client-installer.sh --install
Run from anywhere:
sudo PBSClientTool
Show help:
sudo PBSClientTool --help
Uninstall:
sudo PBSClientTool --uninstall
Update after git pull:
git pull
sudo ./pbs-client-installer.sh --install # Overwrites old version
BENEFITS:
- More convenient access from any directory
- Follows standard Unix tool conventions
- Easy to update (git pull + reinstall)
- Safer workflow (don't need to cd into dev directory as root)
- Professional user experience
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated README.md title
- Updated git clone URL in installation instructions
- Updated directory name in installation commands
- Reflects GitHub repository rename to PBSClientTool
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Documentation improvements to showcase the new live backup progress
monitoring feature and make it easier for users to understand how
to run and monitor backups.
README.md Updates:
Step 13 - Optional Immediate Backup:
- Added example output showing live progress monitoring
- Shows the progress box, real-time stats, and completion
- Example includes file counts, transfer speeds, and timing
- Explains what users will see during backup
- Notes ability to exit with Ctrl+C
Reconfiguration Section:
- Updated to numbered list format for clarity
- Added option 4: "Run backup now" with description
- Explains what "Run backup now" provides:
* Immediate backup testing
* Live progress monitoring with real-time statistics
* File counts, transfer speeds, compression ratios
* Automatic completion detection
* Option to exit early (backup continues)
Post-Installation → Manual Backup:
- Added "Easy way (with live progress)" section
- Shows how to use installer option 4 for backups
- Lists benefits: live monitoring, auto-completion, clear status
- Kept "Direct command" section for advanced users
- Makes it clear which method provides better UX
CHANGELOG.md Updates:
- Documented README changes in "Changed" section
- Listed all three sections that were updated
- Notes recommendation of easy method via installer
Impact:
Users now have clear documentation showing:
1. What live progress looks like during backups
2. How to access it (option 4 in main menu)
3. Why it's better than manual systemctl commands
4. What information they'll see in real-time
This makes the feature discoverable and encourages users to
use the built-in progress monitoring instead of manual log following.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
DOCUMENTATION UPDATE: Added detailed step-by-step guide covering the
entire installation process from PBS server setup to completion.
README.md Changes:
Prerequisites Section (Expanded):
- How to create API tokens in PBS web interface
- How to configure datastore permissions
- Common permission error and how to fix it
- Information gathering checklist before running installer
New: Step-by-Step Walkthrough (14 Steps):
1. Running the installer
2. PBS server configuration (IP, port, datastore)
3. Authentication method selection (why API tokens)
4. Entering API token details
5. Backup type selection (files/block/hybrid)
6. File backup paths configuration
7. Block device selection and auto-detection
8. Backup schedule configuration
9. Retention policy settings
10. Encryption setup and key management
11. 3-step connection test process
12. Systemd service creation
13. Optional immediate backup
14. Completion summary
Each step includes:
- Example prompts and responses
- Explanation of options
- Recommendations and best practices
- Common device types and their paths
- Troubleshooting tips
CHANGELOG.md Updates:
- Documented new comprehensive walkthrough
- Listed PBS server setup documentation
- Added permission error troubleshooting to Added section
This addresses the most common user questions and provides a
complete reference for first-time users. Users can now follow
the guide step-by-step to successfully configure PBS backups.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
CRITICAL FIX: The PBS client was waiting for interactive SSL
certificate fingerprint confirmation, causing the installer to
timeout during authentication testing.
Changes to pbs-client-installer.sh:
- Authentication test now pipes 'y' to auto-accept SSL fingerprints
- Displays accepted fingerprint in logs for transparency
- Added SSL certificate issues to error troubleshooting
- References new test-connection.sh script in error messages
New file: test-connection.sh
- Parameterized diagnostic script for testing PBS connections
- No hardcoded credentials (security best practice)
- Handles SSL fingerprint acceptance interactively
- Tests all 3 steps: reachability, auth, datastore access
- Provides detailed error messages and guidance
- Usage examples for both password and API token auth
Updated CHANGELOG.md:
- Documented SSL fingerprint auto-acceptance as critical fix
- Listed all improvements since v1.0.0
- Highlighted test-connection.sh script addition
Updated README.md:
- Added comprehensive troubleshooting section
- Documented test-connection.sh usage with examples
- Explained 3-step connection verification process
- Added SSL fingerprint handling instructions
- Clarified timeout values for each step
This resolves the "authentication hanging" issue where the login
command was waiting indefinitely for user input on SSL fingerprint
confirmation.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added:
- CHANGELOG.md following Keep a Changelog format
- Documented all changes from v1.0.0 to current unreleased version
- README section explaining reconfiguration options
- Enhanced troubleshooting section with connection test details
The CHANGELOG documents:
- Reconfiguration feature for existing installations
- Connection test timeout and improved error messages
- Installation method change from wget to git clone
The README now clearly explains:
- How to reconfigure existing installations
- Connection-only vs full reconfiguration options
- Use cases for quick connection updates
- Connection test timeout behavior and error types
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Replace wget command with git clone for better version control
and easier updates. The previous wget URL was also malformed.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Expanded README with detailed installation instructions, usage examples, troubleshooting tips, and security considerations for the PBS Client Installer.