## Purpose If you want to deploy the FOG Project software in your homelab environment to remotely image devices via PXE boot, follow the instructions below to get through the process. !!! info "assumptions" It is assumed that you are deploying FOG Project in [Ubuntu Server 26.04](https://releases.ubuntu.com/26.04/ubuntu-26.04-live-server-amd64.iso) or newer. This documentation does not account for distro-specific issues in other operating systems. It is also assumed that you allocate at least 4-cores and 8GB of RAM with at least 256GB of storage for the OS and FOG images. !!! warning "Potential Netplan Misconfiguration" If the FOG server cannot resolve DNS names or reach external networks, verify that the Netplan configuration includes both: - `nameservers` pointing to valid DNS servers - a default route pointing to the network gateway Check the Netplan configuration: ```sh cd /etc/netplan ls sudo nano ``` Ensure it looks similar to this: ```yaml network: version: 2 ethernets: ens18: addresses: - 192.168.3.9/24 routes: - to: default via: 192.168.3.1 match: macaddress: bc:24:11:5c:eb:c9 nameservers: addresses: - 192.168.3.25 - 192.168.3.26 search: [] set-name: ens18 ``` Apply the configuration safely and temporarily with `sudo netplan try` and if connectivity still works, accept the changes permanently by running `sudo netplan apply`. Otherwise, Netplan will roll back the changes automatically. ### Update & Snapshot the GuestVM Before we take a checkpoint/snapshot and install FOG Project, we want to ensure that the GuestVM is fully updated. After the updates are complete, shutdown the GuestVM, take a snapshot, and boot it back up. ```sh sudo apt update -y && sudo apt upgrade -y && sudo apt autoremove sudo poweroff ``` ### Download FOG Project Tarball Download the most recent FOG Project tarball from the [official website](https://fogproject.org/download.php) then extract it. ```sh curl -L https://api.github.com/repos/FOGProject/fogproject/tarball/1.5.10.1826 -o FOGProject-fogproject-1.5.10.1826-0-g2309704.tar.gz tar -xzvf FOGProject-fogproject-1.5.10.1826-0-g2309704.tar.gz cd FOGProject-fogproject-2309704/bin sudo ./installfog.sh ``` ### Install FOG Project (External DHCP Server) The steps below will guide you on a high-level through the external DHCP-server based deployment of FOG Project. Steps will be different if you want FOG itself handing out DHCP addresses and DNS records itself, which I do not recommend. #### Install Steps - What version of Linux would you like to run the installation for? > `2` - What type of installation would you like to do? > `N` - Would you like to change the default network interface from ens18? > `N` - Would you like to setup a router address for the DHCP server? > `N` - Would you like DHCP to handle DNS? > `N` - Would you like to use the FOG server for DHCP service? > `N` - This version of FOG has internationalization support, would you like to install the additional language packs? > `N` - Would you like to enable secure HTTPS on your FOG server? > `N` - Would you like to change the hostname? > `N` - Are you ok with sending this information? > `N` !!! example "Summary Example" * Here are the settings FOG will use: * Base Linux: Debian * Detected Linux Distribution: Ubuntu * Interface: ens18 * Server IP Address: 192.168.3.9 * Server Subnet Mask: 255.255.255.0 * Hostname: lab-fog-01 * Installation Type: Normal Server * Internationalization: No * Image Storage Location: /images * Using FOG DHCP: No * DHCP will NOT be setup but you must setup your | current DHCP server to use FOG for PXE services. * On a Linux DHCP server you must set: next-server and filename * On a Windows DHCP server you must set options 066 and 067 * Option 066/next-server is the IP of the FOG Server: (e.g. 192.168.3.9) * Option 067/filename is the bootfile: (e.g. undionly.kkpxe or snponly.efi) * Send OS Name, OS Version, and FOG Version: No