geerlingguy / geerlingguy/mini-rack
The Lamp Stack
- Dominant language
- No language data
- Stars
- 3.9k
- Forks
- 102
- PR merge metrics
- No merged PRs in 30d
Description
I don't believe anyone's actually run a LAMP Stack cluster... _in a lamp_. So I thought I'd change that:

For all the details, check out my [blog post] and video: [LAMP Stack in a Lamp Rack](https://www.youtube.com/watch?v=CE6MTBxDSpE).
## Hardware

Besides the [Sunmory Floor Lamp](https://amzn.to/3Yg7ItN), I bought a set of [4U rack rails](https://amzn.to/3G2vanZ) and mounted them to the same shelf level as the built-in PDU. Well, 'PDU' is being a little generous. It's a plastic and hot glue mess, so that's why I stuck with an APC Network UPS on the bottom (which also provides some much-needed stability!).
Inside the 4U, starting from the top:
- [Netgear GS305P PoE+ Network switch](https://amzn.to/4iS8Ig4)
- [LabStack 2U 3D Printed mini rack system](https://github.com/JaredC01/LabStack)
- [JetKVM](https://jetkvm.com) with some keystones to pass through network and USB to the control plane Pi
- 3x Raspberry Pi 5 8GB
Each Pi is outfitted with a HackerGadgets PoE+ NVMe SSD HAT:

This way everything can be powered through a single PoE+ switch, and even with the limited 30W power budget on the GS305P, the Pis seem to run fine in this configuration. I don't know if I'd try doing 4x Pis, 3x is probably the limit.
Here's a photo of the UPS in the base:

It's running a Drupal website inside a Kubernetes cluster, configured using my [Pi Cluster Ansible Playbook](https://github.com/geerlingguy/pi-cluster), and I used JetKVM + K9s to monitor the cluster while I installed and tested a default Drupal site for testing:

Contributor guide
No contributing guide indexed for this repository
Research direction
This issue is a project showcase rather than an implementation task; it names no repository files, tests, or entry points. Read the repository's contribution and issue conventions to determine whether builds like this should be recorded, and wait for a maintainer to define the destination and acceptance criteria.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ansible, drupal, kubernetes, raspberry-pi
- Domain
- content, devops, documentation, embedded-iot, infrastructure
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100