{"id":390,"date":"2025-06-04T19:53:44","date_gmt":"2025-06-04T09:53:44","guid":{"rendered":"https:\/\/www.teamburns.com\/blog\/?p=390"},"modified":"2025-06-26T15:36:08","modified_gmt":"2025-06-26T05:36:08","slug":"install-proxmox-for-pfsense","status":"publish","type":"post","link":"https:\/\/www.teamburns.com\/blog\/install-proxmox-for-pfsense\/","title":{"rendered":"Install Proxmox for PfSense"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">System Specifications<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Mini PC with at least ETH 3 ports <a href=\"https:\/\/cwwk.net\/products\/cwwk-12th-generation-n-series-8-core-new-member-affordable-version-n305-n200-n100-fanless-low-power-consumption-micro-mini-industrial-control-host-soft-routing?_pos=2&amp;_sid=dd3ea8970&amp;_ss=r&amp;variant=44602367181032\">CWWK Mini PC<\/a><\/li>\n\n\n\n<li><strong>16GB RAM<\/strong><\/li>\n\n\n\n<li><strong>256GB NVMe SSD<\/strong><\/li>\n\n\n\n<li>Single-node Proxmox setup (no clustering)<\/li>\n\n\n\n<li>No dedicated GPU or RAID<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Installation<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Step 1 &#8211; Download <a href=\"https:\/\/www.proxmox.com\/en\/downloads\">Proxmox VE ISO<\/a><\/li>\n\n\n\n<li>Step 2 &#8211; Download <a href=\"https:\/\/rufus.ie\/en\/\">Rufus<\/a><\/li>\n\n\n\n<li>Step 3 &#8211; Install ISO onto empty USB stick<br><br><img loading=\"lazy\" decoding=\"async\" width=\"300\" height=\"331\" class=\"wp-image-391\" style=\"width: 300px;\" src=\"https:\/\/www.teamburns.com\/blog\/wp-content\/uploads\/2025\/06\/rufus.png\" alt=\"\"><br><br><\/li>\n\n\n\n<li>Step 4 &#8211; Start the Proxmox installer (UEFI mode)<\/li>\n\n\n\n<li>Step 5 &#8211; On the \u201cTarget Hard Disk\u201d screen:\n<ul class=\"wp-block-list\">\n<li>Select your drive<\/li>\n\n\n\n<li>Then <strong>click the button labeled \u201cOptions\u201d<\/strong> at the bottom-right corner of the screen<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Step 6 &#8211; In the Options Window:\n<ul class=\"wp-block-list\">\n<li><strong>Filesystem<\/strong>: Choose ext4<\/li>\n\n\n\n<li><strong>hdsize<\/strong>: Default is fine unless you want to shrink it<\/li>\n\n\n\n<li><strong>swapsize<\/strong>: <strong>Set this to <code>0<\/code><\/strong> to disable disk swap (note: we will be enabling zram swap later).<\/li>\n\n\n\n<li><strong>maxroot<\/strong>: Leave blank unless you want to cap <code>\/<\/code><\/li>\n\n\n\n<li><strong>minfree<\/strong>: Optional (for snapshots or alignment)<\/li>\n\n\n\n<li><strong>maxvz<\/strong>: Leave blank (it will use remaining space)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Step 7 &#8211; On the Management Network Configuration screen:\n<ul class=\"wp-block-list\">\n<li><strong>Management Interface<\/strong>: Choose the first port being used for your Linux Bridge (LAN) <\/li>\n\n\n\n<li><strong>Hostname (FQDN)<\/strong>: Example pve.home.arpa<\/li>\n\n\n\n<li><strong>IP Address (CIDR)<\/strong>: IP Address<\/li>\n\n\n\n<li><strong>Gateway<\/strong>: Gateway IP address<\/li>\n\n\n\n<li><strong>DNS Server<\/strong>: Usually the same as the Gateway<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Enable Trim\/Discard<\/h2>\n\n\n\n<p>Login to the PVE shell and enable Trim\/discard on the root filesystem:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>lvextend -l +100%FREE \/dev\/pve\/root\nresize2fs \/dev\/pve\/root\nnano \/etc\/fstab<\/code><\/pre>\n\n\n\n<p>Update root line to:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/dev\/pve\/root \/ ext4 <strong>discard,<\/strong>errors=remount-ro 0 1<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl daemon-reload\nmount -o remount \/<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/etc\/pve\/storage.cfg<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>lvmthin: local-lvm\n    thinpool data\n    vgname pve\n    content rootdir,images\n    <strong>discard 1<\/strong><\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl enable fstrim.timer\nsystemctl restart fstrim.timer<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Set up zram swap:<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>apt update\napt install zram-tools\nnano \/etc\/default\/zramswap<\/code><\/pre>\n\n\n\n<p>Set:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ALGO=lz4\nPERCENT=13<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl enable zramswap\nsystemctl restart zramswap\nswapon --show<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>NAME       TYPE      SIZE USED PRIO\n\/dev\/zram0 partition   2G   0B  100<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Post Install Script<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>bash -c \"$(curl -fsSL https:\/\/raw.githubusercontent.com\/community-scripts\/ProxmoxVE\/main\/tools\/pve\/post-pve-install.sh)\"<\/code><\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>System Specifications Installation Enable Trim\/Discard Login to the PVE shell and enable Trim\/discard on the root filesystem: Update root line to: Set up zram swap: Set: Post Install Script<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,51,50],"tags":[54,49],"class_list":["post-390","post","type-post","status-publish","format-standard","hentry","category-linux","category-pfsense","category-proxmox","tag-pfsense","tag-proxmox"],"_links":{"self":[{"href":"https:\/\/www.teamburns.com\/blog\/wp-json\/wp\/v2\/posts\/390","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.teamburns.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.teamburns.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.teamburns.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.teamburns.com\/blog\/wp-json\/wp\/v2\/comments?post=390"}],"version-history":[{"count":13,"href":"https:\/\/www.teamburns.com\/blog\/wp-json\/wp\/v2\/posts\/390\/revisions"}],"predecessor-version":[{"id":411,"href":"https:\/\/www.teamburns.com\/blog\/wp-json\/wp\/v2\/posts\/390\/revisions\/411"}],"wp:attachment":[{"href":"https:\/\/www.teamburns.com\/blog\/wp-json\/wp\/v2\/media?parent=390"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.teamburns.com\/blog\/wp-json\/wp\/v2\/categories?post=390"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.teamburns.com\/blog\/wp-json\/wp\/v2\/tags?post=390"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}