Getting Your Home Lab Ready to Run Apps
The setup that lets you deploy and manage self hosted applications from a browser, without needing the command line for every change.
Once your home lab is up and running, you need a way to get applications onto it. You could install software directly onto the operating system, but that approach gets complicated as your setup grows. The approach I use is Docker, with Portainer giving me a browser interface to manage everything. Together they form the layer that makes everything else in this series possible.
Why Docker
The idea behind Docker is that each application runs in its own isolated environment. Instead of installing software directly onto your server's operating system, each app gets its own sealed space, called a container. The application, its dependencies, and its configuration all live inside it, separate from everything else on the machine.
This matters because home labs grow. You start with one service and end up with six. Without containers, each new installation risks interfering with what is already running. With containers, everything is isolated. You can add, update, or remove any application without touching the others. When something breaks, it breaks in its own container without taking anything else down.
Almost every piece of self hosted software ships as a Docker image now. Frigate, AdGuard Home, Nextcloud, Jellyfin, and Paperless-ngx all deploy in minutes. That consistency is what keeps a growing home lab manageable.
Why Portainer
I am comfortable with the command line, and I still use Portainer. It gives me a browser based view of everything running on the Pi: which containers are healthy, which are using the most memory, what the logs say. I can get that overview from any device on my network without opening a terminal.
It also makes deploying new applications more accessible if you are not yet confident with Docker commands. Most self hosted software publishes a Docker Compose file in its documentation. You paste it into Portainer, adjust any settings you need, and click deploy. For someone getting started, that workflow removes a meaningful amount of friction.
Portainer runs as a Docker container itself. Once Docker is installed, it takes one command to get Portainer running, and then everything else is managed from the browser.
Getting set up
For the actual installation steps, the Docker documentation at docker.com and the Portainer documentation at portainer.io are the right places to go. Both are well maintained and will be more current than anything I document here. The Docker docs cover installation on Raspberry Pi OS specifically.
AI tooling is also genuinely useful for this kind of setup work. If you get stuck on a specific command or error message, it can usually talk you through it.
What you have when it is done
Once Docker and Portainer are running, the Pi is a proper self hosting platform. Deploying a new application is a matter of finding its compose file, pasting it into Portainer, and clicking deploy. Setup time is measured in minutes, not hours.
The next step is deploying your first real application. I always recommend AdGuard Home first: it immediately improves the experience on every device in your home and gives you a quick, tangible win.