Open menu
22.1°c in Melksham, UK


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 runs PHP7.2 and now docker
  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 - this now runs some media collection tools
  8. pi-tv01 - this is our new PVR running OSMC
  9. pi-cam01 (pi Zero W) - this is running motioneye for home assistant
  10. pi-hass01 - this is my home assistant install


I have started using for my nginx install, as it works on the 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, 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 now also runs docker as a worker, this helps spread the load out over 2 works now.


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 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 Jellyfin server, this replaces subsonic as I have a small movie collection and subsonic doesnt do video so well.


This is a docker swarm worker, its 1 of 2 that I have running.

It also runs my primary pihole, the secondary is on docker02


This is my docker swarm manager, it has a minimal set of tasks. Like portainer and pihole


This is my home assistant install, its not very fancy yet. but Im working on it, Im also looking to get my config up on github for the world to see.


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