Skip to main content

✅ Post-Install Configuration

Run the community-maintained post-installation script immediately after a fresh Proxmox VE install to configure best practices, enable enterprise repository alternatives, remove unnecessary packages, and apply security hardening. This one-command script eliminates manual configuration steps and ensures a production-ready Proxmox environment. Useful for rapid deployments, lab environments, and standardizing Proxmox setups across multiple nodes.

info

What this does:

  • Removes subscription-required repository prompts
  • Enables free community repositories
  • Updates system packages to latest
  • Disables unnecessary services
  • Removes bloat packages
  • Applies security hardening
  • Configures sensible defaults
  • Completes in 5-10 minutes

Prerequisites

  • ✅ Fresh Proxmox VE installation (just completed setup)
  • ✅ SSH access to Proxmox node (root login)
  • ✅ Internet connectivity from Proxmox node
  • ✅ curl or wget available on system
  • ✅ At least 5GB free disk space
  • ✅ No VMs/containers running (not required but safer)
  • ✅ Proxmox VE 7.x or later
warning

Post-install script considerations:

  • Script makes permanent repository changes
  • Removes some packages (can reinstall if needed)
  • Best run on fresh installs (not production systems)
  • Requires ~5-10 minutes and one reboot
  • Review script source before running if security-critical
  • Backup configuration before running if customized

Configuration Steps

  1. Connect to Proxmox node:

    ssh root@proxmox-ip
  2. Run the post-install script:

    var_version=12 bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/post-pve-install.sh)"
    tip

    The script runs interactively and shows progress. Press Enter to continue or 'y' to confirm prompts.

  3. Wait for completion:

    • Script will show status for each step
    • May prompt for confirmation on package removals
    • Should complete in 5-10 minutes
  4. Reboot if prompted:

    reboot
  5. Verify post-install completed:

    cat /etc/apt/sources.list
    # Should NOT show "pam.proxmox.com" subscription repo

Option B: Manual Review Before Running

  1. Download script to review first:

    curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/post-pve-install.sh > /tmp/post-pve-install.sh
  2. Review script contents:

    less /tmp/post-pve-install.sh
  3. Run reviewed script:

    bash /tmp/post-pve-install.sh

Option C: Wget Alternative (if curl unavailable)

var_version=12 bash -c "$(wget -qO- https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/post-pve-install.sh)"

Understanding the Configuration

What the Script Changes

Fresh Proxmox Install

Remove subscription repo prompts

Enable community-enterprise repository

Update all packages to latest

Remove bloat packages (unused services)

Apply security hardening (fail2ban, etc)

Disable unnecessary background services

Configure default settings

Production-Ready Proxmox ✓

Key Changes Made

ChangePurpose
Remove pam.proxmox.com subscription repoEliminate error messages for free users
Add pve-no-subscription repositoryAccess free updates and packages
apt update && apt full-upgradeInstall latest security patches
Remove unnecessary packagesReduce attack surface, free disk space
Configure firewall defaultsBasic security rules
Disable unused servicesReduce resource usage
Set sensible network settingsOptimize for lab/production

Verification

  1. Check repositories configured:

    cat /etc/apt/sources.list

    Should show:

    deb http://ftp.debian.org/debian bookworm main contrib non-free
    deb http://security.debian.org/debian-security bookworm-security main
  2. Verify subscription repo removed:

    ls /etc/apt/sources.list.d/

    Should NOT show pve-enterprise.list

  3. Check system is up to date:

    apt list --upgradable

    Should show no upgradable packages

  4. Verify Proxmox UI accessible:

    • Open browser: https://proxmox-ip:8006
    • Login with root credentials
    • No error messages about subscription
  5. Check firewall rules applied:

    ufw status
  6. Verify services running:

    systemctl status pve-cluster
    systemctl status pmgproxy
  7. Test package installation:

    apt update
    apt install curl -y # Should work without errors

Troubleshooting

IssueCauseSolution
Script not found (404 error)URL changed or GitHub downCheck community-scripts for current URL
Permission deniedNot running as rootUse sudo or login as root first
curl: command not foundcurl not installed on systemUse wget instead: bash -c "$(wget -qO- ...)"
Script hangs during package removalPackage manager lock heldWait 5 min or kill: ps aux | grep apt
Post-install incompleteNetwork interruptionRe-run script, it's idempotent (safe to run twice)
Still seeing subscription errorsRepository not properly updatedRun: apt clean && apt update
Proxmox UI won't start after scriptPackage conflict during upgradeReboot and check: journalctl -u pve-cluster -n 50
Script removed needed packageOver-aggressive pruningReinstall: apt install package-name
Cannot access Proxmox after scriptFirewall blocking port 8006Check: ufw allow 8006/tcp
Broken package dependenciesConflicting versions after upgradeRun: apt --fix-broken install
Script timeout on slow connectionsNetwork latency highRun script again during off-peak hours

Advanced Options

Run script with custom version:

var_version=13 bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/post-pve-install.sh)"

Run script non-interactively (auto-confirm):

export SKIP_PROMPTS=1
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/post-pve-install.sh)"

Download script to local repo for offline installs:

# On Proxmox node with internet:
curl -o /var/www/html/post-pve-install.sh https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/post-pve-install.sh

# On offline Proxmox:
bash http://repo-server/post-pve-install.sh

Add additional repositories after script:

# Add pve-testing repository (unstable, for testing only):
echo "deb http://download.proxmox.com/debian/pve bookworm pve-testing" | \
tee /etc/apt/sources.list.d/pve-testing.list
apt update

Configure high-availability after post-install:

pvecm create mycluster  # Initialize cluster
pvecm add proxmox-node-2-ip # Add second node

Enable automatic security updates:

apt install unattended-upgrades -y
dpkg-reconfigure -plow unattended-upgrades

Create post-install backup snapshot:

# After successful post-install, backup config:
tar -czf /root/proxmox-post-install-backup.tar.gz /etc

Monitor script execution in real-time (if backgrounded):

tail -f /var/log/apt/history.log

Completion

Proxmox post-install configured!

Next steps:

  • Access Proxmox UI without subscription errors
  • Create first VM or container
  • Configure storage pools
  • Set up backup schedules
  • Customize hardware settings per workload
  • Document your cluster configuration