Horwood Pi Lab

I have 9 Pi's running, they are a mix of versions from a 2B up to a 3B+. I have set up my Pis to do as few jobs as I can, this helps with the performance of the whole setup.

  1. pi-web - this is my internet-accessible Pi, it runs OpenVPN and nginx
  2. pi-php - this only runs PHP7.2
  3. pi-MySQL - this only runs MariaDB 10.3
  4. pi-file - this is my file server, it runs NFS to export the 3.5TB of spinny and SSD I have
  5. pi-docker01 - this is my docker swarm manager
  6. pi-docker02 - this is a docker swarm worker
  7. pi-snapcli01 (old 2B) - this now runs snapclient to output music
  8. pi-tv01 - this is our new PVR running OSMC
  9. pi-snapcli02 (pi Zero W) - this is now running in the kitchen


I have complied nginx as there isn't an up to date version that I can install on my Pis.
I have many sites that I run from nginx, most are internet accessible. but some are internal only.

OpenVPN is a standard install, with a custom user manager.
The user manager allows me to email out the config to new users, if I get a request for access.


My PHP pi is built from https://packages.sury.org/php/, this is where you can get PHP7.2 and even PHP7.3
This has allowed me to get a speed boost from nextcloud, but you might want to check your PHP code will work on new PHP.

To get the best performance from PHP, I would advise you to look at static children. You will also need to check out the memory use, before you change the settings, run top and look at the RSS column. This will tell you how much memory each child needs, then divide that into your total memory.


This is installed from the Debian repos, I have then made config changes to make MySQL run in only 1G of memory. you should run mysqltuner.pl to make sure you have the config just right.


This is a standard install of NFS, I haven't made any changes to the configs. But I guess I probably should have a look at some point.

I still need to sort my disks out, but I have 3 spinning disks and an SSD all connected and mapped over NFS.

The other task file pi does is to upload backups to Backblaze every night using rclone, it also syncs nextcloud files every 20 minutes.

This now runs my Subsonic server, its setup to use snapserver for the jukebox. Allowing me to play music anywhere

pi-snapcli01 & pi-snapcli02

Using the snapcli on both an old B2 and pi zero I can steam music to both the shed and the kitchen, the pi zero W has config to send the audio directly to the soundcard on it. This makes the music buttery smooth.


This is my docker swarm manager, it's running a lot of stuff right now. I need to move some it to the worker

  • see this link for what I have running


This is a docker swarm worker, it's running on devuan to enable me to run 64bit containers. But it needs a rebuild as the file system is all messed up.

  • see this link for what I have running


To make all this work, I have used Ansible. It makes updating and reinstalling easy, the next update here will be a link to my Git Repo.

Git Repos