Welcome Contributors
Thank you for your interest in contributing to Proxmox VE Helper Scripts! This guide will walk you through the setup process and help you make your first contribution.All contributors should fork the repository and work in their own fork. Never commit directly to the main repository.
Quick Start Guide
Fork the Repository
Visit community-scripts/ProxmoxVE on GitHub and click the Fork button in the top right corner.
Run Fork Setup Script
This critical step configures all links to point to your fork for testing:The script automatically:
- Detects your GitHub username from git config
- Updates all hardcoded links to point to your fork
- Creates
.git-setup-infowith your configuration - Backs up modified files with
.backupextension
Understanding the Repository Structure
The repository is organized into several key directories:ct/
Container creation scripts that run on the Proxmox host. These scripts set up the container and call installation scripts.
install/
Installation scripts that run inside containers. These perform the actual application installation.
frontend/public/json/
JSON metadata files for the website. Each application needs a corresponding JSON file.
misc/
Shared function libraries used across all scripts, including
build.func, tools.func, and install.func.Development Tools Setup
Required Tools
- Git - Version control (already installed on most systems)
- A text editor - VS Code recommended
- Access to a Proxmox VE instance - For testing your scripts
Recommended VS Code Extensions
If using Visual Studio Code, install these extensions:- Shell Syntax - Enhanced bash syntax highlighting
- ShellCheck - Linting for shell scripts
- Shell Format - Auto-formatting for shell scripts
Creating Your First Contribution
Choose Your Contribution Type
- New Container Script
- Update Existing Script
- Documentation
Adding a new application to the project:
Testing Your Changes
Why Test Via Curl?
The scripts download dependencies and other files from GitHub during execution. Testing locally bypasses these downloads, meaning you won’t catch broken URLs.Proper Testing Workflow
Test Via Curl
On your Proxmox host, run:This downloads and executes the script from GitHub, testing the real URLs that users will access.
Testing with Developer Mode
For debugging, use developer mode flags:trace- Enablesset -xfor detailed execution logskeep- Prevents container deletion on failurepause- Pauses at key points for inspectionlogs- Saves detailed logs to/var/log/community-scripts/
Example Contribution Workflow
Here’s a complete example of adding a new application:Keeping Your Fork Updated
Regularly sync your fork with the upstream repository:Common Setup Issues
'Repository not found' when cloning
'Repository not found' when cloning
Make sure you’ve forked the repository first. Visit the main repository and click the Fork button before trying to clone.
'Permission denied' when pushing
'Permission denied' when pushing
Set up SSH keys or use a personal access token:
setup-fork.sh fails or doesn't detect username
setup-fork.sh fails or doesn't detect username
Manually configure git if auto-detection fails:
Can't test - no Proxmox instance available
Can't test - no Proxmox instance available
Consider these options:
- Install Proxmox in a VM (VirtualBox, KVM, VMware)
- Use a cloud provider with Proxmox support (Hetzner, OVH)
- Run syntax checks locally:
bash -n ct/myapp.shandshellcheck ct/myapp.sh - Ask maintainers to test for you (mention in PR)
Next Steps
Now that your environment is set up:- Read the Contribution Guidelines to understand coding standards
- Review the Code of Conduct for community expectations
- Study existing scripts similar to what you want to create
- Start building your contribution!
Getting Help
GitHub Discussions
Ask questions and discuss ideas with the community
GitHub Issues
Report bugs or request features
Discord Server
Join for real-time chat and support
Documentation
Comprehensive guides in the
docs/ directory