Skip to main content

Installation Methods

Proxmox VE Helper Scripts can be run in multiple ways to suit your workflow. This guide covers all available methods, from simple one-command installations to a local web interface. The most straightforward method - run scripts directly from GitHub using bash and curl.

How It Works

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/SCRIPT_NAME.sh)"
1

Download the Script

curl -fsSL downloads the script from the GitHub repository:
  • -f: Fail silently on server errors
  • -s: Silent mode (no progress bar)
  • -S: Show errors if they occur
  • -L: Follow redirects
2

Execute with Bash

bash -c "$(...)" executes the downloaded script immediately using bash
3

Script Sources build.func

The script sources the build.func framework which handles container creation
4

Installation Begins

You’re prompted for configuration, then the container is created and the app installed

Examples

# Install Docker with Portainer option
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/docker.sh)"

Advantages

Always Up-to-Date

Downloads the latest version directly from GitHub every time

No Local Installation

Nothing to install - works immediately on any Proxmox host

Easy to Share

Copy and paste commands in documentation and support channels

Transparent

You can review the script on GitHub before running it

Where to Find Commands

Visit helper-scripts.com to:
  1. Browse all available scripts by category
  2. Search for specific applications
  3. Copy the exact bash command for each script
  4. View script details, requirements, and notes
The website provides a searchable interface with categories like “Media”, “Networking”, “Home Automation”, “Development”, etc.

Method 2: PVEScripts-Local (Web UI)

Install a web-based script manager directly in your Proxmox environment for convenient access without visiting external websites.

What is PVEScripts-Local?

PVEScripts-Local is a containerized web application that provides:
  • A searchable catalog of all available scripts
  • One-click script execution
  • Script descriptions and documentation
  • Local hosting (no external dependencies after installation)
  • Easy updates to script catalog

Installation

Install PVEScripts-Local using this command:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/pve-scripts-local.sh)"
1

Run Installation Command

Paste the command in your Proxmox shell and press Enter
2

Configure Container

Accept defaults or customize:
  • Container ID: Next available (e.g., 100)
  • Hostname: pve-scripts-local
  • Disk: 4 GB
  • CPU: 2 cores
  • RAM: 4096 MB
3

Wait for Installation

The script will create the container and install the web application (2-3 minutes)
4

Access the Web UI

Open your browser to the provided URL:
http://YOUR_CONTAINER_IP:3000

Using PVEScripts-Local

Once installed:
1

Browse Scripts

Navigate the web interface to find scripts by:
  • Category (Media, Networking, etc.)
  • Search bar
  • Popular/recent scripts
2

View Script Details

Click on any script to see:
  • Description
  • Default resources (CPU, RAM, disk)
  • Installation notes
  • Update availability
3

Copy Installation Command

Each script page displays the bash command to run
4

Run from Proxmox Shell

Copy the command and paste it into your Proxmox shell
PVEScripts-Local provides a local mirror of the script catalog. It doesn’t execute scripts directly - it provides you with the commands to run in your Proxmox shell.

Updating PVEScripts-Local

The application includes a built-in updater:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/pve-scripts-local.sh)" -s update
Or use the update button in the web interface.

Advantages

No External Internet

Browse scripts without visiting external websites

Centralized Access

All scripts in one convenient interface

Local Hosting

Runs on your own infrastructure

Easy Discovery

Search and filter capabilities

Learn More

For full details, visit the ProxmoxVE-Local GitHub repository.

Method 3: Virtual Machine Scripts

Some scripts create full virtual machines instead of LXC containers. These are used for:
  • Operating systems that require full virtualization
  • Applications that need kernel modules or specialized hardware
  • Systems that don’t run well in containers

VM Script Examples

# Creates a VM running Home Assistant Operating System
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/vm/haos-vm.sh)"

How VM Scripts Differ

VM scripts use vm/ directory instead of ct/. They create QEMU virtual machines rather than LXC containers.

Full Virtualization

VMs have their own kernel and can run any OS

Higher Resource Usage

VMs require more RAM and CPU than containers

Hardware Passthrough

Can pass through GPUs, USB devices, etc.

Better Isolation

Complete separation from host system

Method 4: Proxmox Tools (Host Scripts)

These scripts run on your Proxmox host to configure or manage the server itself, not to create containers.

Post-Installation Setup

Optimize your Proxmox host after initial installation:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/post-pve-install.sh)"
1

Disable Enterprise Repository

Removes the subscription-required repo (if you don’t have a subscription)
2

Enable No-Subscription Repository

Adds the free community repository for updates
3

Update System

Runs apt update and apt upgrade
4

Optional Enhancements

Offers to install useful tools and tweaks

Other Useful Host Tools

# Update all LXC containers in one command
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/update-lxcs.sh)"
Host tools modify your Proxmox server configuration. Always review what they do before running them.

Updating Installed Applications

Most scripts include an update function. To update an installed application:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/SCRIPT_NAME.sh)" -s update

Examples

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/docker.sh)" -s update

# Updates:
# - Docker Engine
# - Docker Compose
# - Portainer (if installed)
# - Portainer Agent (if installed)
Some applications (like AdGuard Home) update through their own web interface. The update script will inform you if this is the case.

Advanced: Script Arguments

Scripts support various arguments for automation and customization.

Common Arguments

# Update an existing installation
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/docker.sh)" -s update

# Verbose output (show all commands)
VERBOSE=yes bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/docker.sh)"

# Development/debug mode
DEV_MODE_LOGS=true bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/docker.sh)"

Pre-Setting Variables

You can pre-configure installation settings using environment variables:
# Example: Set custom resources for Docker container
var_cpu=4 var_ram=8192 var_disk=20 \
  bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/docker.sh)"
This is useful for automation scripts or when you want to skip interactive prompts.

Choosing the Right Method

Direct Bash Commands

Best for:
  • One-off installations
  • Following documentation
  • Always getting latest version
  • Quick deployments

PVEScripts-Local

Best for:
  • Browsing available scripts
  • Frequent installations
  • Offline/airgapped environments
  • Centralized management

VM Scripts

Best for:
  • Full operating systems
  • Hardware passthrough needs
  • Kernel-dependent applications
  • Maximum isolation

Host Tools

Best for:
  • Proxmox server configuration
  • Batch container updates
  • System maintenance
  • Host-level modifications

Script Repository Structure

Understanding the repository helps you find the right scripts:
ProxmoxVE/
├── ct/                    # Container (LXC) creation scripts
   ├── docker.sh
   ├── adguard.sh
   ├── homeassistant.sh
   └── ... 200+ more

├── install/               # Installation scripts (run inside containers)
   ├── docker-install.sh
   ├── adguard-install.sh
   ├── homeassistant-install.sh
   └── ...

├── vm/                    # Virtual machine creation scripts
   ├── haos-vm.sh
   ├── ubuntu2404-vm.sh
   └── ...

├── tools/                 # Host and utility scripts
   ├── pve/              # Proxmox host tools
   ├── post-pve-install.sh
   ├── update-lxcs.sh
   └── ...
   └── addon/            # Add-on installers for existing containers
       ├── webmin.sh
       ├── netdata.sh
       └── ...

└── misc/                  # Framework and helper functions
    ├── build.func        # Container creation framework
    ├── install.func      # Installation helpers
    └── ...
Users run ct/ or vm/ scripts. These automatically call the corresponding install/ scripts internally.

Troubleshooting Installation Methods

Install curl on your Proxmox host:
apt update && apt install -y curl
Check internet connectivity from Proxmox:
ping -c 4 8.8.8.8
curl -I https://raw.githubusercontent.com
Verify DNS is working:
nslookup github.com
Check the container status:
pct status <CONTAINER_ID>
pct start <CONTAINER_ID>
View logs:
pct enter <CONTAINER_ID>
journalctl -xe
Ensure you’re running the update in the Proxmox host shell, not inside a container.The -s update flag must come after the script URL:
# ✓ Correct
bash -c "$(curl -fsSL URL)" -s update

# ✗ Wrong
bash -c "$(curl -fsSL URL -s update)"

Best Practices

1

Always Review Scripts

Before running any script, review it on GitHub to understand what it does:
https://github.com/community-scripts/ProxmoxVE/blob/main/ct/SCRIPT_NAME.sh
2

Use Simple Mode Initially

When first trying a script, use default settings. You can adjust later.
3

Document Your Containers

Keep track of what you’ve installed and which container IDs they use.
4

Regular Updates

Run update commands periodically to keep applications current:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/update-lxcs.sh)"
5

Backup Before Updates

Create Proxmox backups before running major updates.

What’s Next?

Try the Quick Start

Install your first application step-by-step

Browse Available Scripts

Explore 200+ ready-to-use scripts

Build docs developers (and LLMs) love