A home lab is an environment consisting of running servers, services, and infrastructure setups at home, usually created as a form of exploration or interest. Homelabbing taps into the personal setups already readily available at home (networks and devices).
The state of things
What’s the setup like now? A control plane federation
- Portainer Server is running on one device, with Portainer Agents in other devices feeding back to it
- The Server instance is able to control the Docker Engines within each other device, but the devices’ Engines are not connected
I currently have an extremely basic homelab, with plans to expand even further and explore interesting tech in the time to come!

Additional resources
Setup
- Raspberry Pi 4 Model B (active)
- Mac mini (not onboarded)
- Lenovo ThinkCentre M910q (not onboarded)
- Custom-built PC (primary device)
Current services
| Application | Usage | Tech | Host | Status |
|---|---|---|---|---|
| Portainer Agent | Docker management | Docker | Mac mini | Active (in use) |
| Open WebUI | LLM interaction | Docker | Mac mini | Active (in use) |
| Paperless-ngx | Physical paper scanning | Docker Compose | Mac mini | Active (in use) |
| Umami | Analytics | Docker Compose | Mac mini | Active (in use) |
| n8n | Workflow automation | Docker Compose | Mac mini | Active (experimenting) |
| Stirling PDF | PDF management suite | Docker Compose | Mac mini | Active (experimenting) |
| Portainer Agent | Docker management | Docker | PC | Active (in use) |
| Shlink | Link shortening | Docker Compose | Raspberry Pi | Inactive (shut down) |
| Portainer Agent | Docker management | Docker | Raspberry Pi | Inactive (shut down) |
| Joplin Server | Note-taking | Docker Compose | Raspberry Pi | Active (in use) |
| 5.0 GPA Student | Discord bot | Docker | Raspberry Pi | Active (in use) |
| Radicale | CalDAV and CardDAV management | Docker Compose | Raspberry Pi | Active (in use) |
| Portainer | Docker management | Docker | Raspberry Pi | Active (in use) |
| Portainer Agent | Docker management | Docker | ThinkCentre | Active (in use) |
Current plans
Architectural
Explore container orchestration with either Kubernetes (k8s) or Docker Swarm(scrapped; see below- Currently, the home lab is preliminarily linked through instances of Portainer Agent and an instance of Portainer Server (running on the Pi) that allows me to interact with the Docker Engine of all three (Pi, PC, and Mac) devices — though somewhat connected this way, each system is still isolated
Onboarding
Onboard Mac mini into setup(Done!)- Prepare separate home lab user — still want to be able to use the Mac regularly as a desktop
- The setup for doing this seems more complicated such that the technicality overweighs the convenience. I’ve opted to installing OrbStack alongside the current default user instead of going with a separate home lab user
- Prepare separate home lab user — still want to be able to use the Mac regularly as a desktop
- Source and install upgraded memory and storage devices for ThinkCentre
- 8 GB DDR4-2400 → ~16+ GB DDR4-2400
- 256 GB → ~1 TB
Onboard ThinkCentre into setup(Done!)Read more about Proxmox VE and virtualisationPrepare and install Proxmox VE as main interface
- I made a conscious decision to switch to Debian instead of Proxmox; the latter is currently a bit too overkill, and trying to learn it is making my head hurt. Why not stick to something I’m comfortable with for the time being?
- Offload services on the Raspberry Pi to the ThinkCentre
Devlog
22 November 2025
- Learnt more about the concept of orchestration with interactions from LLMs, and decided that orchestration isn’t the right path for this home lab (booooo, I’ll catch any tomatoes you throw at me)
- Orchestration frameworks assume fungible compute resources (meaning that it doesn’t care where things run, just that it runs). This clashes with the current infrastructure I have, where each node (device) in the infra is purpose-built — the Pi is the low-power and always-on coordinator, the Mac is the mid-tier workhorse, etc.
- Though orchestration is something I’d like to learn one day, today might just complicate things more and add more overhead
- Orchestration might be incompatible with Cloudflare Tunnels, where routes through tunnels are statically mapped; i.e.,
subdomain.example.comwill always be mapped todevice-A:port— practically incompatible with orchestration frameworks that can spawn replicas on any device in the cluster
- Curious about Ansible and the idea of automating the provisioning (setting up) of devices
- Might be handy to always ensure that Docker is installed on future devices with Watchtower set up!
20 June 2025
- Figured out Samba and managed to get a Samba share working from the external 1 TB HDD connected to the Pi (USB) to the other devices in the home network!
- Came across Radicale and thought it can replace my current contacts + calendar back-up implementation (running on Wölkli’s hosted Nextcloud instance)
- Managed to get Radicale working and ported over all my contact + calendar information successfully