DietPi 6.1DietPi is a lightweight Linux distribution that is based on Debian 9. The distribution differentiates itself from Debian by slimming things down to the bare essentials while providing tools that make it easy to install a wide variety of optimized software by just selecting a few options in a menu. Like the distribution's name suggests, it is targeted at the Raspberry Pi and other ARM-based single board computers, but there are also images for bare metal x86 PCs, VirtualBox, and VMware.
For this review I used the Raspberry Pi image on a Raspberry Pi 3, the VirtualBox image, and the version for BIOS-based PCs, which is a shell script that is run on an already installed copy of Debian or Raspbian to convert the system into a DietPi installation. The screenshots in this review are all from a virtual machine installation of Debian converted to DietPi using the shell script, but the DietPi experience is almost the same across all the supported platforms; some individual software packages are not available as DietPi-optimized packages on some platforms, but the DietPi software itself does work the same.
The DietPi website
Learning about any distribution begins with checking the distribution's website, and the DietPi website contains a wealth of information about the distribution itself and about the various single board computers it supports. Instead of just listing the various supported platforms and providing download links, the DietPi site has mini reviews of each supported platform in the download section. By clicking through the various information about the supported platforms, it is easy to see each platform's strengths and weaknesses. If a user has a particular piece of software in mind, but has not decided on a hardware platform, the information provided can help the user pick the right hardware. Maybe they need a faster network connection or something that runs cooler? The DietPi site provides those kinds of details about the supported single board computers.
Another great feature of the DietPi website is the forums. In addition to the usual release announcements, there are well written installation instructions and a fairly active community of contributors (at least for a project of this size). I easily found instructions for almost every software package I wanted to install, and the few that I did not find were for things that were extremely straightforward (basically, select one item and you are done). Chances are if you run in to a problem with DietPi the answers will be in the forums, or failing that, on the project's GitHub page.
Having read through the information about the various supported hardware and the instructions for installing the various software packages I wanted to test out, I went to the download section and downloaded two images, the ones for Raspberry Pi and VirtualBox, and the shell script required to convert a BIOS-based PC with Debian installed into DietPi. (The shell script needs to be run from the Debian machine being converted, so at this point the download was just so I could read through the shell script).The two images were both 7z archives, which made the Raspberry Pi image a much smaller download (84.5MB compressed vs. 698.4MB extracted), but the size difference was not as extreme for the VirtualBox image (159.2MB compressed vs. 167.6MB for the extracted .ova file). The shell script for converting Debian to DietPi is only 44.6kB, and the script works for multiple platforms, but the BIOS PC platform, which is labeled as a beta, is the only option that directs users to the script as the installation method.
I started by testing out the VirtualBox image to get a feel for DietPi's features before switching to the Raspberry Pi image and BIOS PC script to dig deeper into specific projects. All three platforms were easy to set up, but the VirtualBox image needed some tweaking for networking to work correctly on my laptop. The first time I imported the VirtualBox image the bridged network interface was using a network device that did not exist on my computer, but after changing that to an interface that did exist, I had no further problems.
The other two installation methods I used, Raspberry Pi and BIOS PC, went smoothly. However, the BIOS PC installation method was a little more labor intensive than the VirtualBox and Raspberry Pi methods. I had to install a minimum Debian install, complete with setting up the root password, reboot the machine, log in, add a few packages, use wget to download the script, then chmod +x and run the script. When the script was done I had a fully functional DietPi installation, but the script changed my root password and made a bunch of other changes. It clearly says that it will do this up front, but it still means that installing a minimal Debian still involves some wasted time. I do hope that in the future they release an ISO for BIOS-based PCs like they do for UEFI-based PCs. The UEFI image is for PCs with on-board EMMC, so I could not use it with any of my computers.
When I finally installed DietPi on my Raspberry Pi 3, the process was almost 100% automated. I copied the Raspberry Pi image to an SD card. After it was done writing, I mounted the image and modified the dietpi.txt file to set my networking options and to instruct DietPi to automatically install the software I wanted. In this case the software was Nextcloud and Gitea, but any of the DietPi software packages can be automatically installed. This makes it possible to set up anything DietPi supports without having to do much more than turn the computer on and wait. The only thing that user has to do is run the final setup for various web-based software by completing the software's installation (e.g., configuring a WordPress blog's settings).
DietPi-Software and other utilities
The DietPi utilities are what makes DietPi so easy to use. In addition to the dietpi.txt file mentioned above, DietPi has several text-based applications for configuring the system. The two main programs are DietPi-Software for installing software and DietPi-Config for configuring other parts of the system. There are also various utilities for managing external storage, cron jobs, system updates, and more. Almost all system administration tasks can be handled using these text-based applications.
The DietPi-Software application makes installing and configuring the system really easy. There are options for installing software that is optimized for DietPi and "additional" software. The list of optimized packages is considerable and includes most things one might want to use on a single board computer. The options range from standard server configurations to lightweight desktops and more. If you have a project in mind, there is a very good chance that there is an optimized DietPi package for it.
Beyond installing software, DietPi-Software provides several options for configuring the system. There are options for changing the default SSH server, file server, web server, and logging system. There is also an option to access the DietPi-Config application, which provides options for tweaking various settings related to hardware and things like system language/keyboard layout. Perhaps the most useful feature in DietPi-Config is the menu for changing what happens when the system starts up. By default, the system just loads a standard text console with login prompt, but the system can be set to log in automatically, start a graphical desktop environment (with login manager or with automatic login), or a few other options.
DietPi's DietPi-Software is robust, but not without a few minor flaws. Sometimes it did not fail as cleanly as I would like when a network issue caused a problem during the installation process. During one of my earliest efforts to install some optimized packages I selected probably 10 different items from the software list, but one of them could not be downloaded because the website it needed to download the software from was temporarily down. Instead of installing the other 9 packages, the error downloading one package stopped the successful install of all the other packages. Some of the other software was downloaded successfully, but DietPi did not appear to classify it as installed (i.e., it was not listed in the uninstall menu). One other issue I had was when I attempted to install Kodi on the VirtualBox image, which is not supported and does not appear in the software list, but can be installed by running "DietPi-Software install 31" (31 is the package number for Kodi.) The installation process worked, but the software, as expected, did not. However, the issue was that I could not uninstall Kodi because it would fail when it tried to uninstall a non-existent kodi-odroid package. I fully admit I was doing something that I did not expect to work, so DietPi is certainly not to blame, but it is possible to try to "outsmart" the system and end up with something that is broken.
If DietPi-Software and DietPi-Config do not provide enough options, DietPi-Launcher provides access to a plethora of other DietPi specific tools. In addition to software, config, and the autostart option that is also available through DietPi-Config, there are tools for managing cron jobs, system processes, mounted drives, updates, and more. These DietPi tools can all be run directly from the command line using the appropriate command (dietpi-[something]), but DietPi-Launcher make it easy to discover what options are available.
Everything on DietPi can be done from the command line, but LXDE, MATE, Xfce, and GNUStep are available as desktop options. The desktops do not come with much software, but they are there. I installed LXDE, MATE, and Xfce to try them out, but I found little reason to use them. All I ended up doing was opening a terminal and using that to configure everything. The desktops were not bad, just unnecessary for my purposes.
I spent several weeks working with DietPi and its various tools, but I feel like I have barely scratched the surface of what the distribution is capable of doing. I started up dozens of virtual image and several bare metal installations of DietPi during my testing and each ended up serving a completely different purpose and ran vastly different software. The DietPi tools made it possibly to do that quickly and easily. Yes, I could have set up all of the projects I created using Debian or Raspbian, but the DietPi tools saved me time.
DietPi makes it extremely easy to turn a single board computer into many different things. Installing and configuring Nextcloud, Kodi, etc., only require a few very basic steps. Every software package I tried installed with few issues, and worked great once installed. DietPi does almost all the hard work for the user, which makes it a great option for running on any single board computer or as a virtual machine. If you are looking for a lightweight and easy-to-use operating system for your single board computer, you cannot go wrong with DietPi.
* * * * *
Hardware used in this review
My test equipment for this review was a Raspberry Pi 3 and a VirtualBox virtual machine with 1 GB of RAM running on a Lenovo Ideapad 100-15IBD laptop with the following specifications: