About LaraPi

A bit more detailed information about the project.

Why did I create LaraPi?

I decided to create LaraPi to ultimately learn about distributed web applications, but also to put my Raspberry Pi stack to use, as it’s been lying in my loft for years untouched.

I nearly sold it actually, but I’m glad I didn’t!

What hardware am I running?

Firstly, for power, the stack uses an Anker USB hub to deliver power to the 5 Raspberry Pi’s.

The Raspberry Pi’s consist of one model 4 which runs all the data services and the load balancer, I then have four model 3Bs.

For networking, I have an 8 port TP-Link smart switch.

What software is being used?

The operating system used is Ubuntu, this is my go to Linux distribution and have used it for years now.

Everything below is all run in Docker containers, this allows me to quickly spin up and deploy the application.

So, for the application, this uses Laravel, an open source PHP framework, to support this are the following:

Server provisioning and deploying is handled with Ansible, an open source automation tool.

What does the networking look like?

Traffic from the internet is routed via CloudFlare to my home IP, once inside my network it goes via my main proxy server to LaraPi’s load balancer, from there it’s distributed between the four workers.

The application, Minio and Reverb are publicly accessible to enable the site to work, while all other services like the database, Meilisearch and Redis are internal only.