* refactor(tools.func): use distro packages by default for stability - fetch_and_deploy_gh_release: add validation for empty app names - Derives app name from repo if not provided - Prevents '/root/.: Is a directory' error (fixes #10342) - setup_hwaccel: fix Intel driver app names for fetch_and_deploy_gh_release - Add proper app names: intel-igc-core, intel-igc-opencl, libigdgmm12, intel-opencl-icd - setup_mariadb: use distro packages by default - Default: apt packages (default-mysql-server, mariadb-server) - Optional: USE_MARIADB_REPO=true for official MariaDB repo - Fixes GPG key/mirror availability issues - setup_mysql: use distro packages by default - Default: apt packages (default-mysql-server, mysql-server) - Optional: USE_MYSQL_REPO=true for official MySQL repo - Keeps Debian Trixie 8.4 LTS handling when using official repo - setup_postgresql: use distro packages by default - Default: apt packages (postgresql, postgresql-client) - Optional: USE_PGDG_REPO=true for official PGDG repo - setup_docker: use distro packages by default - Default: docker.io package - Optional: USE_DOCKER_REPO=true for official Docker repo - Maintains Portainer support in both modes This refactoring prioritizes stability by using well-tested distro packages while maintaining the option to use official repos for specific version requirements. * feat(tools.func): add retry logic and debug mode for stability New helper functions: - curl_with_retry: Robust curl wrapper with retry logic (3 attempts) - curl_api_with_retry: API calls with HTTP status handling - download_gpg_key: GPG key download with retry and dearmor support - debug_log: Conditional debug output when TOOLS_DEBUG=true Replaced critical curl calls: - MongoDB GPG key download - NodeSource GPG key download - PostgreSQL GPG key download - PHP (Sury) keyring download - MySQL GPG key download - setup_deb822_repo GPG import Benefits: - Automatic retry on transient network failures - Configurable timeouts (CURL_TIMEOUT, CURL_CONNECT_TO) - Debug mode for troubleshooting (TOOLS_DEBUG=true) - Consistent error handling across all GPG key imports * feat(tools.func): extend retry logic to all major downloads Added curl_with_retry to all critical download operations: - Adminer download - Composer installer - FFmpeg (binary and source) - Go tarball - Ghostscript source - ImageMagick source - rbenv and ruby-build - uv (astral-sh) - yq binary - Go version check Extended timeouts for large downloads: - CURL_TIMEOUT=300 for FFmpeg, Go (large tarballs) - CURL_TIMEOUT=180 for Ghostscript, ImageMagick Remaining without retry (intentional): - download_with_progress (specialized function) - Rustup installer (piped to shell) - Portainer version check (non-critical) Total curl_with_retry/download_gpg_key usage: 27 locations * typo * Fix removed features in refactor branch - Add libmfx-gen1.2 back for Intel Quick Sync Video encoding (Debian 12+13) - Restore tmpfiles.d configuration for MariaDB /run/mysqld persistence - Fix MariaDB fallback version from 11.4 to 12.2 (latest GA version) These changes were incorrectly removed in the refactor commits. * Optimize tools.func: fix typos, duplicate debug_log, Node.js version, PG backup, Intel VPL * Optimize tools.func: intelligent fallbacks, retry logic, caching, DNS pre-check - curl_with_retry: DNS pre-check + exponential backoff - download_gpg_key: Auto-detect key format, validation - ensure_dependencies: Batch dpkg-query check, individual fallback - install_packages_with_retry: Progressive recovery (dpkg fix, broken deps, individual packages) - verify_repo_available: Caching with TTL to avoid repeated HTTP requests - get_fallback_suite: Dynamic HTTP availability check cascade - ensure_apt_working: APT lock handling, progressive recovery - safe_service_restart: Wait-for-ready with configurable timeout, retry logic - get_latest_github_release: Fallback to tags API, prerelease support, rate limit handling * foirmatting * tools.func: Smarter parallel jobs calculation with load awareness - get_parallel_jobs: Add memory-based limiting (1.5GB/job), load awareness, and container detection for conservative limits - get_default_php_version: Add future versions (Debian 14, Ubuntu 26.04), update defaults to 8.3 - get_default_python_version: Add future versions, update defaults to 3.12 * fix: whitespace cleanup and indentation fix in tools.func
Proxmox VE Helper-Scripts
A Community Legacy in Memory of @tteck
Simplify your Proxmox VE setup with community-driven automation scripts
Originally created by tteck, now maintained and expanded by the community
🎯 Key Features
⚡ Quick SetupOne-command installations for popular services and containers |
⚙️ Flexible ConfigSimple mode for beginners, advanced options for power users |
🔄 Auto UpdatesKeep your installations current with built-in update mechanisms |
🛠️ Easy ManagementPost-install scripts for configuration and troubleshooting |
👥 Community DrivenActively maintained with contributions from users worldwide |
📖 Well DocumentedComprehensive guides and community support |
🔒 SecureRegular security updates and best practices |
⚡ PerformanceOptimized configurations for best performance |
📋 Requirements
🖥️ Proxmox VEVersion: 8.4.x | 9.0.x | 9.1.x |
🐧 Operating SystemDebian-based with Proxmox Tools |
🌐 NetworkInternet connection required |
📥 Getting Started
Choose your preferred installation method:
Method 1: One-Click Web Installer
The fastest way to get started:
- Visit helper-scripts.com 🌐
- Search for your desired script (e.g., "Home Assistant", "Docker")
- Copy the bash command displayed on the script page
- Open your Proxmox Shell and paste the command
- Press Enter and follow the interactive prompts
Method 2: PVEScripts-Local
Install a convenient script manager directly in your Proxmox UI:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/pve-scripts-local.sh)"
This adds a menu to your Proxmox interface for easy script access without visiting the website.
📖 Learn more: ProxmoxVE-Local Repository
💬 Join the Community
💬 DiscordReal-time chat, support, and discussions |
💭 DiscussionsFeature requests, Q&A, and ideas |
🐛 IssuesBug reports and issue tracking |
🛠️ Contribute
💻 CodeAdd new scripts or improve existing ones |
📝 DocumentationWrite guides, improve READMEs, translate content |
🧪 TestingTest scripts and report compatibility issues |
💡 IdeasSuggest features or workflow improvements |
👉 Check our Contributing Guidelines to get started
❤️ Support the Project
This project is maintained by volunteers in memory of tteck. Your support helps us maintain infrastructure, improve documentation, and give back to important causes.
🎗️ 30% of all donations go directly to cancer research and hospice care
📈 Project Statistics
📜 License
This project is licensed under the MIT License - feel free to use, modify, and distribute.
Proxmox® is a registered trademark of Proxmox Server Solutions GmbH