The PiServer for the Raspberry Pi

If you were running an institution teaching computer programming to kids using Raspberry Pis (RBPis), then you would normally spend some time updating numerous RBPis with the latest Raspbian and copying over several files for the class. You can save a lot of time using the PiServer, and do away with the SD cards at the same time.

The PiServer is a new piece of software tool that can easily set up a network of client RBPis connected to a single x86-based computer acting as the server. The various RBPis connect over Ethernet, and do not need their SD cards to boot. The server can control all its clients, allowing addition and configuration of user accounts. This provides an ideal setting for the classroom, within the home, or even an industrial setting.

To recall the terminology, the server is the computer providing the boot files, the file system, and authenticates the password of the clients. The clients are several computers that communicate with the server to retrieve the boot files, and the file system from the server. Although several clients connect to one server, they share the same file system. A user, with a unique combination of a username and password, can log into a client system. Once logged in, the user can access the file system on the server. The user may log in from any client system using their credentials, but will always see the server and the same file system. As the system does not give sudo capability to any user on a client, users are unable to make significant changes to the software and its file system.

All client RBPis use the PXE or network booting, and therefore, do not require any SD card to boot. The advantages of this type of booting are a large number of clients can boot off a single server, which treats all clients as the same. Additionally, as the server runs on a regular x86 system, it offers higher performance, network speed, and disk speed.

Without the PiServer, creating such a network would involve a lot of work, setting up the required FTP and DHCP servers, and making them interact seamlessly with other components on the network. The entire network is prone to breakdown with a single error. The PiServer takes care of all the intricacies, and has automatic functionalities.

For instance, PiServer can automatically detect any RBPi trying to boot via the network, and locate its Ethernet address. PiServer also sets up a DHCP server, to act as a router to provide an IP address to each client, whether in proxy mode or in full IP mode. For the safety of the network, the DHCP server replies only to those RBPis you have specified.

The PiServer also has the task to create usernames and passwords on the server. Therefore, in the classroom, the teacher can set up all the users beforehand. This allows each user to log in individually and keep all their work separately in the central location. The PiServer uses a somewhat altered Raspbian build, which has the LDAP enabled.