Summary
Install MySQL, NFS, Samba, Redis and MQTT on the home server.
Background
The server is coming together. Some basic services are running, critical elements are monitored, the server can be accessed from the Internet, and data is safe with the various backup plans. However, before I start installing some applications for home, like file sharing, home automation, private cloud… a few more services need to be setup to enable it all.
Solution
MySQL

MySQL is a database engine, so the home server can also be used as a database server. Various applications require some sort of database backend, and MySQL is a popular choice. MariaDB can also be used, but my experience is with MySQL, so this is the database service I choose.
The database service will be secured as much as possible, mostly by being only available to services on the server, and not available on the network. Some administration software can be installed, like phpMyAdmin, but it means a web interface is available, and can be a security risk.
Security is always a balance between ease of use, and keeping data safe. In the case of MySQL, I actually interact very little with the service itself. The odd time might be to create a new user and database for a new application, but that’s it. It doesn’t justify the setup, securing and maintenance of a web interface to the service. The command line is good enough for it, and also provide with better understanding of the database engine: better for my skills.
NFS and Samba
NFS and Samba are two file sharing services.
NFS, or Network File System, is mostly used on Unix, or Linux based environments. The beauty of it is that it hides the network from the folder layout. We can for example mount an NFS network share as /backup, and continue to run our backup as normal. The application has no idea the file system is on another computer on the network, it’s totally transparent. NFS is a core element of Unix as far back as the mid 80s, and was developed by Sun Microsystems.
In the home network, it used to mount remote file system on other Linux based system, mostly for backup, and to serve file system for network thin clients. Those clients don’t have a local operating system, must boot from the network, and load their operating system from the network.
Samba is an implementation of the SMB/CIFS protocols. It is used to make network shares from the server available to the Microsoft Windows computers at home, and share photos, videos and documents.
Redis
Redis is a data store engine that reside in the server memory. It is very efficient because everything is stored in RAM. We use it as a database engine, and also as a cache engine. It has a very small footprint on the server, and can make some applications perform much better.
MQTT
MQTT, or Message Queuing Telemetry Transport, is a very lightweight transport protocol to exchange messages, initially developed by IBM. It is used a lot in the Internet of Things, and is based on a publish/subcribe, or pub/sub, mechanism. It is very simple to publish messages and subscribe to topics to receive some.
It is used in the home network at the core of the home system, where various sensors or applications publish information, like someone pressed a switch, a temperature, a window opened… and the home automation application take action based on the information available.
Because of its lightweight, it can even be implemented on an Arduino board or other small microcontroller board.