A comprehensive guide and automation toolkit for setting up and managing a powerful virtualized home or small business network environment using Proxmox, pfSense, OpenWRT, and TrueNAS.
# Check system requirements
make check
# Install required dependencies
make setup
# Deploy pfSense VM
make deploy-pfsense
# Backup your VMs
make backup
.
โโโ scripts/ # Automation scripts
โ โโโ check_prerequisites.sh # System requirements check
โ โโโ deploy_pfsense_vm.sh # pfSense VM deployment
โ โโโ deploy_openwrt_vm.sh # OpenWRT VM deployment (coming soon)
โ โโโ deploy_truenas_vm.sh # TrueNAS VM deployment (coming soon)
โ โโโ backup_vms.sh # Backup solution for VMs
โโโ docs/ # Additional documentation
โ โโโ networking/ # Network configuration guides
โ โโโ security/ # Security best practices
โ โโโ troubleshooting/ # Common issues and solutions
โโโ .gitignore # Git ignore file
โโโ LICENSE # MIT License
โโโ Makefile # Project automation
โโโ README.md # This file
git clone https://github.com/tom-sapletta-com/proxmox-pfsense-OpenWRT-TrueNas.git
cd proxmox-pfsense-OpenWRT-TrueNas
make setup
make install
make deploy-pfsense
Or manually:
sudo ./scripts/deploy_pfsense_vm.sh \
--id 100 \
--name "pfsense" \
--memory 2048 \
--cores 2 \
--storage local-lvm \
--iso /path/to/pfSense-*.iso
make deploy-openwrt
make deploy-truenas
Create a backup of all VMs and containers:
make backup
Or customize the backup:
sudo ./scripts/backup_vms.sh \
--dir /mnt/backup/proxmox \
--compression zstd \
--max 7 \
--exclude 101,102
Check system requirements:
make check
Clean up temporary files:
make clean
For detailed documentation, please refer to the following resources:
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)This project is licensed under the MIT License - see the LICENSE file for details.
Tom Sapletta is a technology enthusiast and software developer with a passion for:
๐ Blogs | DE | PL |
๐ซ ORCID: 0009-0000-6327-2810
Before we look at how to install pfSense on Proxmox, ensure that you have a NIC installed in your Proxmox server as weโll have to use this to pass it through to our pfSense virtual machine.
[pfSenseยฎ software Configuration Recipes โ Virtualizing with Proxmoxยฎ VE | pfSense Documentation](https://docs.netgate.com/pfsense/en/latest/recipes/virtualize-proxmox-ve.html) |
qm monitor <vmid> connect to vm control monitor
qm start <vmid> start vm
qm reboot <vmid> reboot vm (shutdown, start)
qm shutdown <vmid> gracefully stop vm (send poweroff)
qm stop <vmid> kill vm (immediate stop)
qm reset <vmid> reset vm (stop, start)
qm suspend <vmid> suspend vm
qm resume <vmid> resume vm
qm destroy <vmid> destroy vm (delete all files)
qm cdrom <vmid> [<device>] <path> set cdrom path. <device is ide2 by default>
qm cdrom <vmid> [<device>] eject eject cdrom
qm unlink <vmid> <file> delete unused disk images
qm vncproxy <vmid> <ticket> open vnc proxy
qm list list all virtual machines
When creating the VM:
Set BIOS to OVMF (UEFI) On the first boot, go into the boot settings and disable secure boot:
add the new network card to proxmox usage and use embedded cards to pfsense directly from PCI
pfSenseยฎ software Configuration Recipes โ Virtualizing with Proxmoxยฎ VE - pfSense Documentation
After the virtual machine reboots, the console will stop at an interfaces assignment prompt.
Type
n
and pressEnter
to skip VLAN configurationEnter
vtnet0
for WANEnter
vtnet1
for LANPress
Enter
if prompted for additional interfacesType
y
and pressEnter
to complete the interface assignment
How to reload /etc/network/interfaces in Ubuntu or Debian
In Ubuntu or Debian desktop, Network Manager is the default network configuration tool, whereas Ubuntu server by default uses
/etc/network/interfaces
to configure network interfaces. Of course, even on desktop, you can disable Network Manager, and use/etc/network/interfaces
instead to configure your networking.For those of you who use
/etc/network/interfaces
to configure network interfaces, if you modify/etc/network/interfaces
, you need to reload it so that the new configuration can take effect.
(adsbygoogle = window.adsbygoogle ย []).push({});
Here is how you can reload /etc/network/interfaces
.
sudo service networking restart
Note: If Network Manager is installed and enabled on your system, you must not use /etc/network/interfaces
to configure networking, and any change made in /etc/network/interfaces
will be ignored by Network Manager. You need to use Network Manager to configure your network interfaces. In that case, after network settings are modified, you can restart Network manager as follows.
sudo service network-manager restart
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.
[Troubleshooting โ Troubleshooting Network Connectivity | pfSense Documentation](https://docs.netgate.com/pfsense/en/latest/troubleshooting/connectivity.html) |