Proxmox Post-Install Checklist: 10 Things to Do Right After Installing
A practical checklist of everything to configure after a fresh Proxmox VE install — repos, updates, email alerts, storage, and more.
Proxmox is working right after install, but the default configuration has a few rough edges that will bite you later if you don’t address them now. This is the checklist I run through every time I set up a new node.
If you haven’t installed Proxmox yet, start with the install guide first.
All commands below run in the Proxmox shell — either via SSH (ssh root@your-proxmox-ip) or through Node → Shell in the web UI.
1. Switch to the no-subscription repository
The enterprise repository (enabled by default) requires a paid subscription. Update attempts will fail with a 401 error until you switch.
# Disable enterprise repo
echo "# deb https://enterprise.proxmox.com/debian/pve bookworm pve-enterprise" > /etc/apt/sources.list.d/pve-enterprise.list
# Add no-subscription repo
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
# Also handle the Ceph enterprise repo if present
if [ -f /etc/apt/sources.list.d/ceph.list ]; then
sed -i 's|https://enterprise.proxmox.com/debian/ceph-quincy|http://download.proxmox.com/debian/ceph-quincy|' /etc/apt/sources.list.d/ceph.list
fi
apt update
2. Run full system update
apt dist-upgrade -y
Reboot after this completes. Updates sometimes include kernel changes that require a restart to take effect.
reboot
3. Remove the subscription nag dialog
Every login to the Proxmox web UI shows a popup complaining you don’t have a subscription. It’s harmless but irritating. This one-liner removes it:
sed -Ezi.bak "s/(Ext.Msg.show\(\{[^}]*title: gettext\('No valid subscription'\).*?Ext.Msg.show\(\{)/\/\/ Subscription warning removed\n\/\//s" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
systemctl restart pveproxy
If that sed command looks scary, there’s a simpler version that works on Proxmox 8:
# Find and comment out the subscription check
sed -i.bak "s/if (res === null || res === undefined || \!res || res/if (true || res/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
systemctl restart pveproxy
Note: This change will be overwritten when proxmox-widget-toolkit updates. You’ll need to rerun it after updates — or just dismiss the dialog. It doesn’t affect functionality.
4. Set up email alerts
Proxmox can email you when backups fail, when VMs stop unexpectedly, or when the system runs into problems. This is worth configuring before you deploy anything important.
If you have a Gmail account, configure postfix to relay through it:
apt install -y libsasl2-modules
Edit /etc/postfix/main.cf and add to the bottom:
relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
Create /etc/postfix/sasl_passwd:
[smtp.gmail.com]:587 [email protected]:your-app-password
Generate an App Password in your Google account (Account → Security → 2-Step Verification → App Passwords). Do not use your regular Gmail password here.
chmod 600 /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd
systemctl restart postfix
Test it:
echo "Test from Proxmox" | mail -s "Proxmox test" [email protected]
Then update the notification email in the Proxmox UI under Datacenter → Options → Email from address.
5. Configure storage
By default, Proxmox creates a local storage pool (for ISOs and templates) and local-lvm (for VM disks). This is fine for a single-disk setup, but you may want to add additional directories.
Check what Proxmox sees:
pvesm status
If you have a second disk for data, add it under Datacenter → Storage → Add → Directory.
6. Set a static IP (if you didn’t during install)
The IP you set during installation should be static already, but double-check /etc/network/interfaces:
cat /etc/network/interfaces
You should see something like:
iface vmbr0 inet static
address 192.168.1.10/24
gateway 192.168.1.1
If it says dhcp, change it to static now — a Proxmox node with a changing IP is a headache.
7. Set your hostname correctly
If you want your Proxmox node to have a proper hostname on your network:
hostnamectl set-hostname pve.home
Update /etc/hosts to match:
nano /etc/hosts
Make sure there’s a line mapping your node’s IP to both its short and full hostname:
192.168.1.10 pve.home pve
8. Enable automatic updates (optional but recommended)
For a home server, unattended security updates are worth enabling:
apt install -y unattended-upgrades
dpkg-reconfigure -plow unattended-upgrades
Proxmox VE packages aren’t included in standard unattended-upgrades, so you’d still need to manually upgrade those, but this keeps the underlying Debian packages patched automatically.
9. Configure QEMU guest agent
If you’re going to run virtual machines (not just LXC), install the guest agent package so Proxmox can communicate with VMs cleanly:
This is done inside each VM after you create it, not on the Proxmox host. Inside any Debian/Ubuntu VM:
apt install qemu-guest-agent
systemctl enable --now qemu-guest-agent
Then enable it in the VM’s hardware settings in the Proxmox UI (VM → Hardware → Add → QEMU Guest Agent).
10. Create your first snapshot of a working VM
Once you have a VM or LXC configured, take a snapshot immediately. This creates a rollback point before you make changes.
In the Proxmox UI:
- Select your VM or container
- Go to Snapshots
- Click Take Snapshot
- Give it a name like
fresh-installand a description
Get in the habit of taking a snapshot before any significant change. It takes seconds and has saved me more than once.
Proxmox is ready. The next guide covers VM templates — which let you clone a pre-configured system in under a minute instead of reinstalling from scratch every time. After that, head to the Docker guide to start deploying services.