Last updated 03-25-2025
Piserver was written by others starting in 2017. I have only provided updated and tested installation instructions. https://raspiplayer.com/piserver/
Given that at that time the Raspberry Pi 3B model only had USB 2.0 ports and 100 Base Ethernet, it was not suitable for a server and so piserver was built to run on i386 hardware. This required an OS for piserver and separate OS(s) for the Raspberry Pi arm cpu clients that network booted off the server.
With the new Raspberry Pi 5B we have an excellent candidate for a server that can run the same OS as its clients. This reduces redundant storage and simplifies updates too. The Pi 5B requires Bookworm which the original PiServer was never updated to.
The original PiServer configured client workstations to boot a specific OS (32/64 bit, cli or full desktop). I would like that choice to be up to the user, rather than the specific client workstation the user is sitting at.
Note that zero clients and thin clients (a software zero client) run their programs on the server. With the Raspberry Pi 4B and 5B models, we have a very capable Full Desktop workstation that runs its programs locally. This takes a huge load off of the server that they boot off of. The Pi5B should be adequate for a home or small office server at the same time that it can also be a full Desktop workstation.
For some use cases, USB tethering of a cell phone can provide internet service. Therefore I will configure PiServer5 this way and it will be a workstation, a router, a network attached file system, and a tftp server for booting clients all in one. The Raspberry Pi 4B and 5B only have one ethernet port. This can be expanded with a network switch. I rarely have a need to run more than three computers, so another option is a USB 3.0 to gigabit network adapter. With both USB tethering and a USB network adapter, we need predictable interface names for reliable routing. Fortunately we can tie the USB network adapter to its MAC address with a udev rule. In Bookworm, this will be appended to /etc/udev/rules.d/99-com.rules, or to avoid messing up the default 99-com.rules you can create a separate file, 99-usb-net.rules.
# add rule to force AX88719 USB network adapter to be configured as eth2 based on its MAC SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="8c:ae:4c:ee:48:4f", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
You can also configure the PiServer5 wireless adapter as a hotspot to provide internet service to additional computers. USB tethering will keep your phone charged which would not be that case if your phone was the hotspot.