Professional backup system for Proxmox Virtual Environment (PVE) and Proxmox Backup Server (PBS) settings and config and critical files with advanced compression features, multi-storage support, intelligent notifications, and comprehensive monitoring.
- π― What does this script do?
- β¨ Key Features
- π Quick Installation
- βοΈ Configuration
- π Project Structure
- π§ Usage
- π Monitoring
- π‘οΈ Security
- π System Requirements
- π€ Contributing
- π License
- π Support
- π Quick Reference
- β Stargazers
** Manual Install (Stable)**
# Enter the /opt directory
cd /opt
# Download the repository (stable release)
wget https://github.com/tis24dev/proxmox-backup/archive/refs/tags/v0.7.3.tar.gz
# Create the script directory
mkdir proxmox-backup
# Extract the script files into the newly created directory, then delete the archive
tar xzf v0.7.3.tar.gz -C proxmox-backup --strip-components=1 && rm v0.7.3.tar.gz
# Enter the script directory
cd proxmox-backup
# Start the installation (runs initial checks, creates symlinks, creates cron)
./install.sh
# Customize your settings
nano env/backup.env
# Run first backup
./script/proxmox-backup.sh
** Fast Install or Update or Reinstall (Stable)**
bash -c "$(curl -fsSL https://raw.githubusercontent.com/tis24dev/proxmox-backup/main/install.sh)"Fast Development Version or Reinstall (Latest Features)
bash -c "$(curl -fsSL https://raw.githubusercontent.com/tis24dev/proxmox-backup/main/install.sh)" -- devThis backup system automatically saves all critical files from your Proxmox environment, allowing you to completely restore the system in case of disaster recovery or migration. All options, files to be saved, and script functions are fully configurable and can be enabled or disabled as desired.
- PVE/PBS configurations - All Proxmox VE and Backup Server configuration files
- Cluster configurations - Cluster setup, nodes, quorum, corosync
- Storage configurations - All datastores, mount points, remote storage
- Network configurations - Interfaces, bridges, VLANs, firewall, routing
- VM/CT configurations - All VM and container
.conffiles - Templates and snippets - Custom templates and configuration snippets
- VZDump configurations - Backup jobs, schedules, retention policies
- Replication configurations - Replication jobs between nodes
- SSL/TLS certificates - Web interface, API, cluster certificates
- SSH keys - System public/private keys
- User configurations - Users, groups, permissions, authentication
- Firewall configurations - Datacenter, node, VM/CT rules
- Proxmox database - Configurations stored in internal database
- System logs - Critical logs for troubleshooting
- Ceph configurations - Ceph setup (if present)
- ZFS configurations - Pools, datasets, snapshot policies
- Installed package list - For identical reinstallation
- Custom configurations - Modified files in
/etc/ - Cron jobs - Scheduled system tasks
- Service configurations - Custom services and modifications
With these backups you can completely restore your Proxmox system on a new server, maintaining all configurations, VMs, containers and settings exactly as they were!
- Multi-location and cloud backups - Simultaneous backups to local, secondary, and cloud storage
- Automatic backup rotation - Intelligent retention management with automatic cleanup
- Compressed backups with verification - Advanced compression (xz, zstd, gzip) with integrity verification
- Preserved file structure - Original structure maintained for simplified restoration
- Smart deduplication - Duplicate elimination with symlinks for space optimization
- Parallel storage operations - Simultaneous uploads to multiple storages for maximum speed
- Automatic PVE/PBS detection - Automatic detection of system type and configurations
- Automatic datastore discovery - Automatic discovery of all PVE and PBS datastores
- Intelligent file collection - Intelligent collection of critical system files, configurations, backups
- Customizable backup paths - Customizable paths for additional files/directories
- Email notifications - Detailed email notifications with complete reports
- Cloud Email Service - Centralized system to send email notifications
- Telegram notifications - Rich Telegram notifications with emoji and formatting
- Simplified Telegram activation - Unified Telegram activation with dedicated bot and unique code (10 seconds)
- Centralized Telegram infrastructure - Fully functional and expandable for future updates
- Prometheus metrics - Complete metrics export for Prometheus/Grafana
- Advanced logging system - Detailed multi-level logs with emoji and colors
- Security checks - Security checks on permissions and script file modifications
- File integrity verification - Integrity verification with SHA256 checksums and MD5 hashes
- Network security audit - Firewall checks, open ports, network configurations
- Automatic permission management - Automatic management of file and directory permissions
- Bash 4.4+ (included in all modern distributions)
- Proxmox VE or Proxmox Backup Server
- rclone (for cloud backups, automatic installation available)
Smart installer that detects existing installations and asks what to do
Stable version (main branch):
bash -c "$(curl -fsSL https://raw.githubusercontent.com/tis24dev/proxmox-backup/main/install.sh)"Development version (dev branch - latest features):
bash -c "$(curl -fsSL https://raw.githubusercontent.com/tis24dev/proxmox-backup/main/install.sh)" -- devHow it works:
- π Automatically detects if an installation exists
- π If found, presents an interactive menu:
- [1] Update - Preserves all your data and settings
- [2] Reinstall - Complete fresh installation (requires typing
REMOVE-EVERYTHING) - [3] Cancel - Exit without changes
- π If no installation exists, proceeds with fresh install automatically
What is preserved during Update:
- β
Configuration file (
backup.env) - β Server identity and security settings
- β Existing backups and logs
- β Custom configurations and credentials
- β Lock files and temporary data
Skips interactive menu and forces complete removal
Stable version (main branch):
bash -c "$(curl -fsSL https://raw.githubusercontent.com/tis24dev/proxmox-backup/main/install.sh)" -- --reinstallDevelopment version (dev branch):
bash -c "$(curl -fsSL https://raw.githubusercontent.com/tis24dev/proxmox-backup/main/install.sh)" -- --reinstall dev- β Configuration files
- β Backups and logs
- β Server identity
- β All custom settings
- β Cron jobs and symlinks
Requires typing REMOVE-EVERYTHING to confirm
When to use --reinstall:
- You want to start completely from scratch
- You're troubleshooting a corrupted installation
- You're moving to a new server identity
- You want to bypass the interactive menu
The installation system supports two branches:
- main - Stable, tested releases (recommended for production)
- dev - Development branch with latest features (may contain untested code)
The dev branch is useful for testing new features before they are released to the main branch.
Branch selection works with all modes:
# Automatic mode with dev branch
bash -c "$(curl -fsSL .../install.sh)" -- dev
# Forced reinstall with dev branch
bash -c "$(curl -fsSL .../install.sh)" -- --reinstall dev
# Verbose mode for debugging
bash -c "$(curl -fsSL .../install.sh)" -- --verbose# Clone the repository (main branch - stable)
git clone https://github.com/tis24dev/proxmox-backup.git
cd proxmox-backup
# OR clone dev branch (latest features)
# git clone -b dev https://github.com/tis24dev/proxmox-backup.git
# cd proxmox-backup
# Configure the system
cp env/backup.env.example env/backup.env
nano env/backup.env
# Set correct permissions
chmod +x script/*.sh
chmod 600 env/backup.env
# Run first backup
./script/proxmox-backup.shThe system uses a main configuration file (env/backup.env) with over 90 configurable options organized in 9 sections:
- General system configuration
- Main features (enable/disable)
- Paths and storage configuration
- Compression configuration
- Cloud and rclone
- Notifications
- Prometheus
- Users and permissions
- Custom configurations
# Quick Telegram setup (10 seconds)
proxmox-backup --telegram-setup
# Test configuration
proxmox-backup --dry-run
# First backup
proxmox-backupUse Default Automatic Mode (Recommended) if:
- β You want the installer to detect and ask what to do
- β You're not sure if an installation already exists
- β You want to choose between update or reinstall interactively
- β You prefer a guided installation process
Use --reinstall Flag if:
- β‘ You want to force a complete reinstallation without prompts
- β‘ You're running automated deployment scripts
- β‘ You know for certain you want a fresh start
- β‘ You want to bypass all interactive confirmations (except REMOVE-EVERYTHING)
proxmox-backup/
βββ script/ # Main executable scripts
β βββ proxmox-backup.sh # Main orchestrator
β βββ security-check.sh # Security checks
β βββ fix-permissions.sh # Permission management
β βββ server-id-manager.sh # Server identity management
βββ lib/ # Modular library system (17 files)
βββ env/ # Main configuration
β βββ backup.env # Configuration file
βββ config/ # System configurations
βββ backup/ # Generated backup files
βββ log/ # System logs
βββ secure_account/ # Secure credentials
# Main backup commands
proxmox-backup # Run backup
proxmox-backup --dry-run # Test mode
proxmox-backup -v # Detailed output
proxmox-backup --check-only # Check configuration only
# Utility commands
proxmox-backup-security # Security checks
proxmox-backup-permissions # Fix permissions
# Recovery command
proxmox-restore # Restore data from backup# Navigate to installation directory
cd /opt/proxmox-backup
# Complete backup
./script/proxmox-backup.sh
# Test mode (dry-run)
./script/proxmox-backup.sh --dry-run
# Security checks
./script/security-check.sh
# Permission management
./script/fix-permissions.sh
# Restore Data
./script/proxmox-restore.shThe system automatically exports metrics for Prometheus:
- Backup operation duration
- Backup sizes
- Operation status
- Errors and warnings
- Storage usage
- Telegram: Rich notifications with emoji, formatting and inline buttons
- Email: Detailed reports with complete statistics
- Logs: Advanced logging system with multiple levels
- Integrity verification: SHA256 and MD5 checks on all files
- Security checks: Permission verification, firewall, open ports
- Credential management: Secure storage of credentials
- File audit: Detection of unauthorized or modified files
- Bash 4.4+
- Proxmox VE or Proxmox Backup Server
- 512MB RAM (for compression operations)
- 1GB free space (for temporary backups)
Contributions are welcome! To contribute:
- Fork the repository
- Create a branch for your feature (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is distributed under the MIT license. See the LICENSE file for more details.
- Complete documentation: See
doc/README.md - Detailed configuration: See
doc/CONFIGURATION.md - Issues: Open an issue on GitHub for bugs or feature requests
- Discussions: Use GitHub Discussions for general questions
# Automatic installation (detects existing and asks) - RECOMMENDED - Stable
bash -c "$(curl -fsSL https://raw.githubusercontent.com/tis24dev/proxmox-backup/main/install.sh)"
# Automatic installation (detects existing and asks) - Development
bash -c "$(curl -fsSL https://raw.githubusercontent.com/tis24dev/proxmox-backup/main/install.sh)" -- dev
# Verbose mode for debugging - Stable
bash -c "$(curl -fsSL https://raw.githubusercontent.com/tis24dev/proxmox-backup/main/install.sh)" -vproxmox-backup # Run backup
proxmox-backup --dry-run # Test mode
proxmox-backup-security # Security checks
proxmox-backup-permissions # Fix permissions
proxmox-restore # Restore data from backupIf this project is useful to you, consider giving it a β!