Proxmox VE

proxmox.com

Proxmox Virtual Environment (Proxmox VE) is an open-source server virtualization platform that lets you manage both virtual machines and containers in a unified environment. It utilizes the Type 1 (bare-metal) KVM hypervisor for full hardware virtualization, providing robust and efficient management of diverse workloads while also offering lightweight container-based virtualization through LXC.


🌐 Resources πŸ”—


πŸ“Œ Some of the following commands are based on the Proxmox VE Helper-Scriptsarrow-up-right - make sure they are updated

❗ Use the Proxmox shell on the main node via the pve web GUI

Updating PVE - Manually

  • Open the Proxmox shell on the main node (or SSH into PVE -> risky)

  • Use this Proxmox VE Helper-script to

    • Correct Proxmox VE Sources

    • Disable pve-enterprise repository

    • Enable pve-no-subscription repository

    • Enable ceph package repositories

    • Add (disabled) pvetest repository

    • Disable subscription nag (Delete browser cache)

    • Disable high availability

    • Update Proxmox VE

Kernel Clean

Processor Microcode

Network configuration


Quick Benchmark


Software on PVE

bash Config

  • Set custom aliases/exports and fastfetch tool

Timezone

  • Set timezone (e.g. Europe/Rome)

Netdataarrow-up-right observability

Netdata - http://192.168.5.2:19999/arrow-up-right

Backup Proxmox Config

Backup

  • Set the permanent backups directory environment variable or edit the script to set the $DEFAULT_BACK_DIR variable to your preferred backup directory

  • Make the script executable

  • Shut down ALL VMs + LXC Containers if you want to go the safe way. (Not required)

  • Run the script

Notification

The script supports healthchecks.ioarrow-up-right notifications, either to the hosted service, or a self-hosted instance. The notification sends during the final cleanup stage, and either returns 0 to tell Healthchecks that the command was successful, or the exit error code (1-255) to tell Healthchecks that the command failed. To enable:

  • Set the $HEALTHCHECK variable to 1

  • Set the $HEALTHCHECK_URL variable to the full ping URL for your check. Do not include anything after the UUID, the status flag will be added by the script.


Proxmox Backup Server - https://192.168.5.3:8007arrow-up-right

PROXMOX - Network > edit eth0 and set the Static IP.

PBS post install

  • Disable the Enterprise Repo

  • Add/Correct PBS Sources

  • Enable the No-Subscription Repo

  • Add Test Repo

  • Disable Subscription Nag

  • Update and reboot Proxmox Backup Server

Run the command below in the Proxmox Backup Server Shell and answer "yes" to all options presented


Proxmox Datacenter Management - https://192.168.5.4:8443arrow-up-right

PROXMOX - Network > edit eth0 and set the Static IP.

PDM post install

Run the command below in the Proxmox Backup Server Shell and answer "yes" to all options presented


LXC

LXCs - Undo Autologinarrow-up-right + Temporary SSH root login

If you don't set a root password first, you will not be able to login to the container again, ever.

  1. set the root password sudo passwd root

  2. remove --autologin root from /etc/systemd/system/[email protected]/override.conf

  3. reboot

  • ❗ Remember to disable root login with PermitRootLogin no when no more necessary

LXCs - Cleaner

LXCs - Updater

LXC - Filesystem Trim

Ubuntu LXC + UniFi Network Server

Unifi Network Server - https://192.168.5.10:8443arrow-up-right on Ubuntu LXC

  1. Ubuntu LXC

First, install the Ubuntu LXCarrow-up-right with the following specs (defaults are 1 vCPU, 512MB, 2 GB) necessary to the UniFi Network Server - using Advanced Settings during Helper Script launch:

  • 2 vCPU

  • 2GB RAM

  • 8 GB Disk

PROXMOX - Network > edit eth0 and set the Static IP - if not already done by the Advanced installer.

  1. UniFi Network Server

Open the LXC console or SSH into it and proceed with installing the UniFi Network Server manually via the UniFi Installation/Update Scripts - Ubiquiti Communityarrow-up-right

Arcane - http://192.168.5.15:3000arrow-up-right

Portainer - https://192.168.5.15:9443arrow-up-right

UpSnap - http://192.168.5.15:8090arrow-up-right

  • Install the Docker LXCarrow-up-right with the desired specs - TESTING Default

    • πŸ“Œ TEMP -> this is just for TESTING - final Docker will be on a VM

PROXMOX - Network > edit eth0 and set the Static IP.

Installed containers list:

  • Delete arcane:arcane-admin user and create your own

  • Login to via Web at http://<IP>:8090/

  • Create account

  • Create Devices

    • Network scan works if devices are already on - Scan the /24 network

  • To backup and restorearrow-up-right config:

    • open http://<IP>:8090/_/#/settings/backups

    • Initialize new backup and download the backup zip file

    • to restore (on a new instance), Upload backup zip file and click Restore button

DELETED

AdGuard - http://192.168.5.5:3080arrow-up-right

PROXMOX - Network > edit eth0 and set the Static IP.

Vaultwarden - http://192.168.5.7:8000arrow-up-right

Vaultwarden Admin - http://192.168.5.7:8000/adminarrow-up-right

https://vaultwarden.lab.syselement.com/#/loginarrow-up-right

https://vaultwarden.lab.syselement.com/adminarrow-up-right

  • Based on Alpine Linux

PROXMOX - Network > edit eth0 and set the Static IP.

Set https://vaultwarden.lab.syselement.com in the General settings - Domain URL admin menu http://192.168.5.7:8000/adminarrow-up-right.

  • Vaultwarden needs to be behind a proxy (e.g. Zoraxy) to obtain HTTPS and to allow clients to connect.

Zoraxy - http://192.168.5.6:8000/arrow-up-right

PROXMOX - Network > edit eth0 and set the Static IP.

  • Set Proxy Root to localhost:8080

  • Status - set Use TLS to serve proxy request and Start Service

  • Create Proxy Rules - new proxy rule for Vaultwarden

    • Proxy Type - Sub-domain

    • Subdomain Matching Keyword - vaultwarden.lab.syselement.com

    • Target IP - 192.168.5.7:8000 (Vaultwarden LXC IP)

    • Create Endpoint

Local HOST/DNS - set vaultwarden.lab.syselement.com to Zoraxy LXC IP (or forward port 80 and 443 from your router to your Zoraxy LXC IP).

  • Check Technitium DNS configuration too and use the Technitium server IP as DNS Server.

Wiki.js - http://192.168.5.16:3000/arrow-up-right

https://wiki.lab.syselement.com/loginarrow-up-right

PROXMOX - Network > edit eth0 and set the Static IP.

Technitium - http://192.168.5.11:5380/arrow-up-right

PROXMOX - Network > edit eth0 and set the Static IP.

Open the webpage and navigate to Zones

  • Add Zone - Primary Zone: lab.syselement.com

  • Enter the lab.syselement.com zone

    • Add Record

      • Name: vaultwarden

      • IPv4 Address: 192.168.5.6

      • Save it

    • Add another record for wiki with the same IP

Settings - Blocking

  • Enable Blocking

  • Allow/Block List URLs - Quick Add - e.g. Steven Black...

  • Save Settings

Settings - Proxy & Forwarders

  • Forwarders - Quick Select - e.g. Quad9 Secure (DNS-over-HTTPS)

  • Save Settings

πŸ“Œ To use Techitium as a DNS server, set its IP 192.168.5.11 as DNS server in the client PC network configuration

OFF

DELETED

PROXMOX - Network > edit eth0 and set the Static IP.

  • Configuration (bookmarks.yaml, services.yaml, widgets.yaml) path

Runtipi - http://192.168.5.14/dashboardarrow-up-right

PROXMOX - Network > edit eth0 and set the Static IP.

Prometheus - http://192.168.5.15:9090/arrow-up-right

PROXMOX - Network > edit eth0 and set the Static IP.

Jellyfin - http://192.168.5.9:8096/arrow-up-right

🌐 Resources

Proxmox

PROXMOX - Network > edit eth0 and set the Static IP.

  • Comes already with Privileged/Unprivileged Hardware Acceleration Support

    • FFmpeg path: /usr/lib/jellyfin-ffmpeg/ffmpeg

    • For NVIDIA graphics cards, you'll need to install the same drivers in the container that you did on the host. In the container, run the driver installation script and add the CLI arg --no-kernel-module

  • Location of config file

Windows

BookStack - http://192.168.5.164/arrow-up-right

phpIPAM - http://192.168.5.8arrow-up-right

Cosmos Cloud - http://192.168.5.159/arrow-up-right

Kavita - http://192.168.5.145:5000/arrow-up-right

Checkmk

Kasm


Ubuntu Server VM

πŸ”— ➑️ My Ubuntu Server - VM additional/updated guide

Turn OFF the VM (if ON).

Follow the instruction at Useful Ubuntu 22.04 VM Commandsarrow-up-right to set up Cloud-Init on the VM:

  • User

  • Password

  • SSH public key for SSH Key login

  • Upgrade packages - No

  • Static IP (may need DHCP)

  • Click Regenerate Image

Start the VM.

  • Open the VM Console using xterm.js

Resize disk

PROXMOX - Hardware > Hard Disk (scsi0) > Disk Action > Resize

In the VM Console:

First Config

  • SSH

  • Timezone and Updates

Software

  • SSH into the VM

Zsh & Oh-My-Zsh

Follow the guide here to setup ZSH with Oh-My-Zsh - Zsh & Oh-My-Zsh - syselement

Docker

Evaluate Docker LXC

Dockge - http://192.168.5.200:5001arrow-up-right

Portainer - https://192.168.5.200:9443arrow-up-right

WatchYourLan - http://192.168.5.200:8840/arrow-up-right

Tailscale SSHarrow-up-right

  • On the host being connected to, you need to advertise that Tailscale is managing SSH connections which originate from the Tailscale network to this host

  • Install microk8s

  • Some commands

BookStack (only on fresh Ubuntu)

πŸ”— BookStack Admin Documentation - Installationarrow-up-right

​ πŸ”— docker-bookstackarrow-up-right

​ πŸ”— Ubuntu 24.04 Installation Scriptarrow-up-right

  • Install a fresh Ubuntu Server VM

  • SSH into the Ubuntu VM and run the BookStack Ubuntu Installation script

❗ A script to install BookStack on a fresh instance of Ubuntu 24.04 is available. This script is ONLY FOR A FRESH OS, it will install Apache, MySQL 8.0 & PHP 8.3 and could OVERWRITE any existing web setup on the machine. It also does not set up mail settings or configure system security so you will have to do those separately. You can use the script as a reference if you’re installing on a non-fresh machine.

πŸ“Œ Default login: [email protected]:password


10 Alpine Linux apk Command Examples - nixCraftarrow-up-right


Last updated