DietPi As Easy “Small Appliance”

Or why I spend a few hours a month rooting around in other Linux / BSD releases and “revisiting” the “final decision” on preferred Distribution to use.

Because each OS Operating System does things differently. Even if, for me, the avoidance of SystemD maters a lot so I’m focused on the set of Distributions that avoid it, there are still interesting possibilities and interesting ways of doing things to be discovered by looking at other Distributions / Releases.

In general, my order of preference is: Devuan, Armbian, Debian, FreeBSD, NetBSD, {others}. With a special recognition of Alpine Linux as a small router appliance for special purposes.

Why?

What I like:

Debian, for years, was my Go To Choice. Runs almost everywhere. Mostly stable and well tested. It is the basis of several dozen other Distributions so they get lots of bug fixes / feedback. Generally stuck with the Unix Way of K.I.S.S. (Keep It Simple Stupid) and one small job per program but do it well. Relatively resource efficient. Not “junked up” with things you don’t need unless you are a TLA (Three Letter Agency) or a Defense Contractor. Easy to configure and use with standard System V init structure. Then they “junked it up” with SystemD and ever more Big Blob approach. It still makes the list as there is a process to migrate Debian to Devuan (“uplift” is what I call it ;-).

Devuan “took over” for me as it is basically Traditional Debian. Not much more to say. It has a few “shims” (thin layers of software) between things that expect SystemD and the Traditional Way codes; but other than that is pretty much my comfortable spot. There’s a limited number of SBCs it supports as a native build. The rest need the Debian / Devuan “uplift” done and that sometimes has minor issues as it is a new process and “off script” from what the Debian builders expected.

Armbian specializes in taking Debian and porting it to ARM based computers. They generally get the CPU tuning right and they are “close to the hardware” (as embedded systems oriented guys) so tend to have a close look at things like network activity that might indicate something bad snuck into the device. It, too, can have a Devuan “Uplift” done to purge SystemD. I have noticed a couple of things that are less than stellar then. First off, video and sound are often left for “last to get right”. Long after the Media Center distros are running 1080p video in the GPU, these guys will still be having video not working or poor video issues. As 80% of my stuff runs headless or non-video, I’m generally OK with that; but for my Daily Driver, it’s an issue. There is also an invisible cursor issue at first boot sometimes that has the cursor reappear after you click open a window – tricky to do if you can’t see the cursor: I move the mouse down and left, down and left, etc. then up and right just a tad so the LXDE menu icon highlights, then I can click it open, pick HTOP off a menu and open it. Then all is good. A Petty Annoyance but works. There’s also a notification box that some Process ID (PID) can’t connect to some SystemD thing at first window launch, but it doesn’t matter. So Armbian w/ Devuan “uplift” has become my standard desktop on SBCs (Single Board Computers) that lack full Devuan support. They often run on small new SBCs before others do.

Then there’s the BSDs. NetBSD has a motto of “Of Course It Runs NetBSD!”, so you can often get a NetBSD running on a board before just about anything else. A network performance optimized fork of FreeBSD, it’s nice for various dedicated appliance type things. I’ve had BSD systems that ran without being shut down for any reason for years.

FreeBSD has a very nice “ports” system for building additional software from sources. Both it, and NetBSD, never made the move from Version 7 BSD/Unix init (rc.d) to SystemV init. IMHO, System V was largely just capricious changes by AT&T in an attempt to regain licensing control of Unix. Most of the changes were not for the better. I used BSD (Berkeley Software Distribution – a port of Unix Version 7) for years on servers at work and at client sites. It doesn’t get any better than that, IMHO. The only downside to the BSDs is that setting up X-windows and graphical environments can be a real PITA (Pain In The A…titude)… I keep waiting for that to be fixed but each time I’ve tried it, it is only a tiny bit better.

So I use the *BSDs for things that are mostly just servers, need to be bulletproof to security issues (FreeBSD is well known for security, but OpenBSD is a bit more so) and need to run untended for years. I use Alpine for my “dedicated small router w/ filtering DNS and proxy server” as it is designed to be a router base – things like configuration changes just evaporate with a reboot unless you take special action to save them. (Makes it easy to reset a router when some attack has left it munged- just power-fail restart). Then the others for various desktops, general purpose, and larger server things (like compile distcc servers where version and libraries must match the desktop – or take the performance hit and complexity of a chroot build environment).

Why not the others? I won’t list them all, but a couple of points on the Majors:

What I don’t like:

Fedora / Red Hat / Enterprise Linux / CentOs was my go to Linux for many years. Up until a few years after Fedora was ended and Red Hat went hard core commercial enterprise. Now they have junked it up even more so with SystemD, and been bought by IBM. I’ve used IBM gear and software for years at work, and it is generally OK, but way over controlled and narrow. SystemD is just a big fat security attack surface that brings uncontrollable and unrecoverable instabilities to a part of the OS that wasn’t broke and didn’t need “fixing”. Then has the “everything you know is wrong” effect of tossing out 30 years of “how to do FOO” (both in systems admins heads and in millions of web pages and books). But I first moved strongly away from Red Hat when I had to spend hours shutting off things like Kerberos security “features” that may be needed at a Defense Contractor but not needed in my lab file server. Spending a day getting crap out of my way is not my idea of fun (but being paid $150 hour to do it at a company IS ;-) Essentially, if I want “Production Quality and Protection” I’ll go with BSD and deal with the X windows stuff, not bother with a junked up Linux. Leaving them was when I moved to Debian.

Ubuntu is just Debian in a suit. Still has the SystemD issues. Canonical (company that owns them) does fix some bugs and puts a nice GUI (Graphical User Interface) on it; but it is relatively fat as a build. They expect to run on Intel chips and there are security issues with Intel chips (maybe more on that in another post or a comment…) plus ARM chips have gotten so fast for the $$ that they are way more than needed for one person on a desktop. Then their configuration choices don’t exactly match my personal preferences. I’m not against it, it is just that I end up spending a day “undoing things” and then putting in what I want’. LXDE instead of MATE, for example (though they now have an LXDE Ubuntu Lubuntu). I was OK with Lubuntu kinda-sorta until SystemD hit. Now it’s easier to just start from Debian and easier still to use Devuan.

Arch & Gentoo: I’m going to cover these together as a few things are the same. These are both more “hacker / tech guy oriented”. More build it yourself, less glossy GUI and hand holding config program. Not for the Noob, and also a bit of work for me to make like I want it. Yet Another Package Manager (why everyone must have their own way to package and install software escapes me, but each distribution comes with a learning curve for their package manager. Suse has yum, IIRC. RedHat RPM. Sigh. I’m “full up” with BSD package managment and Debian apt stuff. At least the Debian Way works across Ubuntu & Armbian too.) Arch comes without a window system so get to build one, plus it is SystemD only. Gentoo is an all source build -and I’m playing with it. They have a non-SystemD OpenRC basic build and a SystemD version if, for God Only Knows why; you want it. I may yet use Gentoo for something – BUT it is NOT Noob friendly.

Suse has had various legal entanglements as various folks bought different things. I got tired of trying to track who owned what (IIRC at one time they owned the rights to Unix?) Then they have The German Disease. You can do anything you want as long as it is Their Way. Lots of things are ‘decided for you’ (because Of Course you will want LVM volumes – an issue I ran into on Red Hat – the right decision with professional admins in a company, not needed for one person on a Raspberry Pi…) I got tired of fighting the German Army to get a flexible system built my way. That was about 20 years ago… so YMMV. (Your Mileage May Vary).

Which brings us to DietPi

I’m also going to mention Puppy Linux here too. Both are small compact distributions that are relatively flexible, but also built to be New User Friendly (NOOB – that is short for nooby that I think may be corrupted new-boy?)

I like Puppy, but it often has had a sort of Crayola look and feel to the desktops. They have some neat ideas on build systems and I like their small size and the use of RAMdisk (file system living in memory); but the extreme dog references in everything drives me away. I don’t need technical jargon indexed via a dictionary of dog terms – “cute” gets waaaaaaay over done and ends in “yuck” for me.

DietPi is similarly small and efficient, but without the mutts. It is highly efficient on small computers, so well suited to the SBC world. It still runs very effectively on old x86 machines where other Distributions demand you add a GB of memory so they can find out if they run.. Odd, since I still have Red Hat on a couple of my old x86 boxes – it used to be small memory footprint and fast… Now I need a “special” distribution. DietPi fits that role.

So I periodically boot DietPi on SBCs just to see how well it does. I keep thinking if I ever “roll my own” OS, I’d want it small and light like Puppy or DietPi, and with a RAMdisk based root file system (like Puppy or Knoppix – and maybe DietPi, I didn’t check on this last boot).

So I was trying DietPi on the RockPro64 just to see if it was working there, or had issues like some of the other distros (distributions, versions of Linux) I tried. I ran into one small problem trying to get LXDE installed. That may well be ‘my problem’. As it is based on Debian, I just did an ‘apt-get install lxde’. It claimed to install. Then startlxde didn’t “go”. I was reminded (it puts up a message at each log-in) that configuration and software installation is to be done via their Hand-Holdy For Noobs ncurses based menu system. It is likely that my earlier install attempt set something in a way that confused it; so I need a “do-over” from fresh before I can say “it just didn’t work” as opposed to “I confused it”.

I got to spend a while remembering to hit space bar to get an * in a () box and using the arrow keys to move around the menu and all. (Once you are comfortable doing “apt-get install chromium” navigating 4 or 5 menus to click 8 boxes to find the “( ) chromium” box is more pain than help… but useful for Noobs). That, BTW, is my major complaint about DietPi. It took 3 or 4 “reboots” during bring-up as it forces you through various configuration menus. You must log in as root at one point for the software install auto-run script to work right. I’d logged in as “dietpi” too early and got a nag… But OK, IF you follow their Plan and click the boxes you do get a well configured system without really knowing what to do. So for that reason alone, it’s more Noob Friendly.

Which brings me to the Small Appliance praise.

I noticed on one of their menus several software choices that were for various appliance like systems. Hang On A Mo… a small light OS that runs well on old Raspberry Pi 1 & 2 boards at the low end, and has a “dozen clicks to appliance” for Noobs? THAT is USEFUL. Heck, maybe even for me. I’d be happy with “dozen clicks” to a PiHole server. (A device that “black holes” various ads and junk).

So here’s a link to their software list and a copy of it here so you can see what Small Servers are built in to their menu system with “managed configuration” via their menu system:

https://dietpi.com/phpbb/viewtopic.php?f=8&t=5

This is quite a list, so I’ve highlighted a few:

Desktops:
LXDE – Highly optimized lightweight desktop without the “bloatware”.
– MATE – Popular Gnome 2 desktop.
– XFCE – Lightweight desktop.
– GnuStep – Alternative/unique desktop.
Chromium – Optional: Web browser
Remote Desktop Access:
– Tightvnc Server – Desktop for remote connection.
– VNC4 Server – Desktop for remote connection.
– NoMachine – Feature rich remote desktop connection.
– XRDP – Remote desktop server for Windows Remote Desktop Client.
– RealVNC Server – Desktop for remote connection.
Media Systems:
Kodi – Media Centre / Player
– YMPD – Lightweight web Interface audio player for MPD
– myMPD – Lightweight web Interface audio player for MPD
– O!MPD – Feature-rich web Interface audio player for MPD
– CAVA – Optional: Console-based audio visualizer for MPD
– Mopidy – Web Interface Music /Radio Player
– AirSonic – Feature rich media streaming server with web interface.
– SubSonic – Feature rich media streaming server with web interface.
– SqueezeBox – Also known as Logitech Media Server.
– SqueezeLite – Audio player for SqueezeBox.
– Shairport Sync – AirPlay audio player with multiroom sync
– ReadyMedia – (MiniDLNA) Media streaming server (DLNA, UPnP)
– Ampache – Web interface media streaming server.
– Emby – Web interface media streaming server.
– Plex Media Server – Web interface media streaming server.
– Tautulli – Monitoring and tracking tool for Plex Media Server.
Murmur – Mumble VoIP Server
– Roon Bridge – Turns your device into a Roon capable audio player
– Roon Server – Turns your device into a Roon capable audio player and Roon core
– Roon Extension Manager – Manage extensions from within Roon
– NAA Daemon – Signalyst Network Audio Adaptor (NAA).
– IceCast – Shoutcast Streaming Server, including DarkIce.
– jRiver – Media Center
– Koel – Web interface streaming server.
– Gmrender – DLNA audio render.
– Ubooquity – Free home server for your comics and ebooks library.
BitTorrent / Download Tools:
Transmission – Lightweight BitTorrent server with web interface
– Deluge – Alternative BitTorrent server with web interface
– qBitTorrent – Lightweight and fast (c++) BitTorrent server with web interface
– rTorrent – BitTorrent server with ruTorrent web interface
– Aria2 – Download manager with web interface
– SABnzbd – NZB download manager with web interface.
– SiCKRAGE – Automatically download TV shows
– Sonarr – Automatically download TV shows
– Radarr – Automatically download Movies
– Lidarr – Automatically download Music
– CouchPotato – Automatically download movies.
– Jackett – API Support for your favorite torrent trackers.
– NZBget – NZB download manager with web interface.
– HTPC Manager – combines all your favorite software into one slick interface.
Emulation & Gaming:
– OpenTyrian – Gaming
– Cuberite – Fast Minecraft server with web interface
– MineOS – Multiple Minecraft servers with web interface
– Nukkit – Server for Minecraft Pocket Edition
– AmiBerry – Amiga emulation system, further developed optimized builds of uae4arm-rpi
– DXX-Rebirth – Descent 1 & 2 OpenGL port
– Steam – Steam client
Camera / Surveillance:
RPi Cam Control – RPi Camera / Web Interface Surveillance
– MotionEye – Camera / Web Interface Surveillance
Cloud / Backups:
ownCloud – Your own personal cloud based backup/data storage system
– Nextcloud – Your own personal cloud based backup/data storage system
– Pydio – Feature-rich backup and sync server with web interface.
UrBackup Server – Full backups for systems on your network
– Gogs – GitHub style server, with web interface.
– Gitea – GitHub style server, with web interface.
– Syncthing – Backup and sync server with web interface.
– Tonido – Lightweight backup and sync server with web interface, and, cloud access.
– Minio – S3 compatible distributed object server
Social / Search:
– FreshRSS – A self-hosted RSS feed aggregator
– Forums – phpbb3
WordPress – Website Blog and Publishing platform.
– Image Gallery – Host and browse your images from a web interface.
– BaiKal – Lightweight CalDAV + CardDAV server.
– OpenBazaar – Decentralized peer to peer market server using BitCoin.
YaCy – Decentralized open source search engine.
WiFi HotSpot
WiFi HotSpot – Turn your device into a wireless hotspot/access point.
Tor HotSpot – Optional: Routes all WiFi HotSpot traffic through the Tor network.
Home Automation:
– Home Assistant – Open-source home automation platform running on Python 3.
– EmonPi – Lightweight Energy usage stats with EmonPi PCB.
– Grasshopper – Web App to control Bticino MyHome
Hardware Projects:
– Google AIY – Voice kit “Ok, Google”!.
– PiJuice – PiSupply UPS/battery power system.
– RPi.GPIO – GPIO Interface library for RPi (python).
– WiringPi – GPIO Interface library (c).
– WebIOPi – Web interface to control RPi GPIO.
– Node-Red – Visual tool for wiring together hardware devices, APIs and online services.
– Mosquitto – Message broker that implements MQTT protocol versions 3.1 and 3.1.1.
– Blynk Server – iOs and Android apps to control Arduino, ESP8266, Raspberry Pi and similar microcontroller boards over the Internet.
– AudioPhonics Pi-SPC – Power control module for Raspberry Pi, allowing physical button power on/off.
– InfluxDB – Database optimized to save time based data as logs or data from a sensor.
– Grafana – The open platform for beautiful analytics and monitoring.
Remote Access:
Remot3.it – (Weaved) Access your device over the internet.
VirtualHere – Share physically attached USB devices from your SBC, over the network.
System Stats / Management:
– DietPi-Cloudshell – Lightweight system stats for your LCD display or monitor.
– Raspcontrol – Web interface system stats
– Linux Dash – Web interface system stats
– PhpSysInfo – Web interface system stats
RPi Monitor – Web interface system stats
– NetData – Web interface system stats
Webmin – Remote system management with web interface
– Open Media Vault – Web interface network attached storage (NAS) solution
System Security:
Fail2Ban – Protects your system from brute-force attacks
Docker – Build, ship, and run distributed applications
Webserver Stacks:
– LAMP Webserver – Apache2 / MariaDB / PHP
– LASP Webserver – Apache2 / SQLite / PHP
– LEMP Webserver – Nginx / MariaDB / PHP
– LESP Webserver – Nginx / SQLite / PHP
– LLMP Webserver – Lighttpd / MariaDB / PHP
– LLSP Webserver – Lighttpd / SQLite / PHP
– phpMyAdmin – Web interface SQL admin tool
– Certbot – Free, automated SSL cert creation and setup, allowing https.
– Tomcat8 – Apache Tomcat server
DNS Servers:
– Pi-hole – A DNS/Web server that will block ads for any device on your network.

File Servers:
– ProFTP – Simple, efficient, lightweight FTP file server.
– Samba – Feature rich file server.
– vsFTPD – Feature rich FTP file server.
NFS – Network file system server
VPN Servers:
– OpenVPN – Easy to use, minimal hassle VPN server
– PiVPN – OpenVPN installer & management tool

Network Load Balancing:
HaProxy – High performance TCP/HTTP load balancer.
Website URL’s:
– NoIp – Website URL Address
Printing:
– CloudPrint – CUPS print server, with support for Google cloud printing
– OctoPrint – Web interface for controlling 3D printers
Computational Science:
– Folding@Home – Use processing power to assist with disease research

File Server Choices:
– ProFTP – Simple, efficient, lightweight file server.
– Samba – Feature rich file server.
SSH Server Choices:
– Dropbear – Lightweight SSH Server
– OpenSSH – Feature rich SSH server with SFTP/SCP support.
Log System Choices:
– DietPi-Ramlog – Lightweight RAM logging.
– Full – Full logging system with Rsyslog and Logrotate.
Webserver Preference System:
– Apache2 – Feature-rich webserver
– Nginx – Lightweight webserver
– Lighttpd – Extremely lightweight webserver
Pre-Installed Applications:

htop – (The only resource monitor you’ll ever need)
DietPi-Ramlog #1 – (Mounts /var/log to RAM. Saves your SD card writes, and, uses less than 0.1mb~ of RAM).
Dropbear – (Lightweight SSH server)

DietPi Programs:

dietpi-launcher – (Select and Run any of the DietPi programs, all from one place.)

dietpi-config – (Feature rich configuration tool for your device)
dietpi-software – (Install optimized and ready to run software)
dietpi-update (Update your version of DietPi)
dietpi-drive_manager – (Feature-rich drive management utility)
dietpi-backup – (Backup or restore your DietPi system)
dietpi-sync – (Allows you to sync/duplicate one directory to another).
dietpi-explorer – (Bare-bares, lightweight whiptail based file manager/explorer)
dietpi-services – (Takes control of software services, enabling DietPi a method of quick service control).
dietpi-process_tool – (Tweak system wide nice/priority levels, for most software and processes).
dietpi-cleaner – (Remove unwanted “junk” from your DietPi system and free up filesystem space)
dietpi-bugreport – (Sends a bug report to DietPi)
dietpi-autostart – (Choose which program/script is automatically run during boot, eg: Kodi/desktop)
dietpi-cron – (Allows you to modify all start times for Cron Jobs)
dietpi-logclear – (Keep ontop of your log files, features clearing and backup modes).
dietpi-morsecode – (Converts a text file to morse code, then outputs to your screen)
dietpi-letsencrypt – (Frontend for Lets Encrypt and DietPi integration)
dietpi-justboom – (Frontend for changing audio settings, eg: EQ, MPD, CAVA)

I note in passing their scripts listed at the end that do a variety of systems admin tasks for you… as long as you like ncurses menus ;-)

What caught my eye was the PiHole server and the VPN server. I need to configure / set up those services, but was not looking forward to the whole “install, learn their needs, configure” cycle. Here I was thinking: A Pi and a couple of clicks and I could have a PiHole server? Hmmmm ;-)

It does have SystemD in it (as it is Debian based), but hidden deeply enough most folks will never see it behind the menus. While it might be amusing to try a Devuan “uplift” on it, that puts you back in the Land Of Geeks where their whole shtick is Hand-Holdy Noobs on old small hardware. I probably would not go there… just leave it be as they made it.

While consistent OS across systems makes admin and configuration easier, there is a place for special purpose equipment. That Alpine router for instance. With DietPi I’m seeing it as a way to do a “Rapid Prototype” on a desired service, like PiHole ad blocker; that might be suitable for ongoing “production” use. But if not, you have something up and running while you do the longer term “more work” solution.

I could easily see setting up a home “shop” using a few R.Pi boards or similar Very Small SBCs with DietPi and their Click Box Appliances running. Ought to be able to get a 1/2 dozen up and configured in one day – and I don’t know what you would need a 1/2 dozen for! Seems like a very fast way to a working shop!

I’d also wanted to play with a Voip server, and the DietPi has one as a choice too. So that’s also “on the cards” as a potential quick toe in the water.

I’m going to “give it a try” on one or two of my various boards sometime later this week. Just a kind of a “Is this where there be Dragons?” exploration. We’ll see if this little guy makes a convert out of me ;-) I’ll be giving PiHole a try first. It would be nice to get out of the business of maintaining a DNS list of sites to block ;-)

Subscribe to feed

Advertisements

About E.M.Smith

A technical managerial sort interested in things from Stonehenge to computer science. My present "hot buttons' are the mythology of Climate Change and ancient metrology; but things change...
This entry was posted in Tech Bits and tagged , , , , . Bookmark the permalink.

2 Responses to DietPi As Easy “Small Appliance”

  1. Pouncer says:

    Being a bit Unix-phobic, Puppy has been my distro of choice for any efforts to get things done in that part of the info-sphere.

  2. E.M.Smith says:

    @Pouncer:

    Then you would be exactly the audience for one of those DietPi Small Appliance approaches were you in need of one of the small appliance solutions. It does what it can to insulate you from “Unix command line stuff”…

Anything to say?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.