Single-Board Computer manufacturers continue to push the capabilities of their credit card-sized offerings with each successive iteration, and the Raspberry Pi Foundation is no exception. What began as an inexpensive means to attract students to the arcane art of programming has now evolved into a powerful SBC lineup capable of running thousands of projects.

Speaking of performance, although VMs are still too demanding for your average Raspberry Pi, modern boards belonging to this uber-popular series are great for containerization workloads, especially once you arm your boards with these amazing utilities.

👁 Emulating Armored Core 2: Another Age using AetherSX2 on the Raspberry Pi 5
I tried emulating PS2 games on my Raspberry Pi - here's how it went

Installing the PlayStation 2 emulator is no walk in the park, but the Raspberry Pi 5 can run certain PS2 titles at playable frame rates

1 Docker Engine

Or Podman, depending on your requirements

Before you can start working with self-hosted services, you’ll need a container runtime capable of churning out app instances within isolated environments. If you’ve been active in the home lab or Raspberry Pi forums, you’ve probably heard of Docker Engine. Compatible with an armada of container images, Docker Engine is a solid CLI platform that lets you host cool, practical, and downright insane services on your Raspberry Pi.

For tinkerers who require a more security-driven containerization tool that can walk toe-to-toe with Docker Engine, you’ll find Podman a solid option for your Raspberry Pi workstation. Although you’ll have to deal with a slightly inferior version of the Compose utility, Podman has the same syntax for most of its commands, so you can easily set it up alongside Docker and switch between the two per your needs.

2 Portainer

The be-all-and-end-all container management UI

You’ll find plenty of experts advocating the CLI nature of Docker Engine and Podman, and while I don’t disagree with them, a menu-based interface is almost always better for beginners and casual self-hosting enthusiasts. As someone who abandoned Docker Desktop due to its limited functionality, Portainer is my preferred tool for managing my container stack.

Whether it’s pulling images from different repositories, leveraging pre-created templates in your projects, deploying containers, or modifying their ports, volumes, and database services, Portainer has got you covered on every front. It’s also fairly easy to deploy on your Raspberry Pi and barely consumes any resources on modern RPi systems. What’s more, Portainer pairs well with Docker, Podman, and the tools I’m about to mention next…

3 Kubernetes

Especially if you’ve got some spare RPi boards

Although it’s designed for advanced users, Kubernetes is one of the best container orchestration platforms on the block. For the uninitiated, K8s ensures your containers remain in tip-top shape with its solid automation, self-healing, load-balancing, and scaling utilities. If you’re planning to build a reliable Raspberry Pi-flavored workstation, I suggest setting up Kubernetes with a cluster of RPi boards, though you can use Minikube to experiment with it before investing in other SBCs.

Considering the small footprint and low power consumption of Raspberry Pi SBCs, you won’t have to worry about creating extra space or paying high power bills for your hardcore K8s cluster. Alternatively, you can look into Docker Swarm if Kubernetes seems too intimidating and overkill for your self-hosting setup.

4 Watchtower

All along the watchtower

Equipping your Raspberry Pi server with all your favorite services and testing the most obscure applications is a lot of fun. But updating every image to its latest version and deploying the containers with the latest images can be a hassle once your army of apps grows out of control.

Watchtower can save you a lot of headache, as this utility is designed with the sole purpose of automating your Docker container updates. But a word of caution: Be sure to set the Monitor-only mode for your mission-critical containers to avoid broken updates from rendering your favorite services inaccessible.

5 RunTiPi

The simplest way to self-host apps

When you’re new to the home lab field, working with containerized services can be a handful, especially if you go for a full-fledged Kubernetes setup. So, if you’re looking for a utility to ease yourself into the art of self-hosting, RunTiPi is perfect as it doesn’t require you to flash a separate distro on your microSD card.

RunTiPi can be configured with a single script, assuming your Docker/Podman containers aren’t already choking port 80. Besides supporting a ton of self-hosted utilities, RunTiPi also provides a straightforward way to configure reverse proxy, authentication, and external access provisions for all your containers.

Raspberry Pi and container projects: A match made in home lab heaven

Still looking for more recommendations? Uptime Kuma, for one, is a beginner-friendly monitoring service that’s perfect for keeping tabs on your self-hosted application stack. It’s worth noting that so far, every tool I’ve recommended can be used in tandem with the other utilities on Raspberry Pi OS, Ubuntu, Debian, or a typical desktop Linux distro.

But if you’re willing to put up with the issue of not being able to access multiple containerization tools, dedicated server distros like YunoHost and UmbrelOS are fantastic when you want an easy means to deploy apps on your Raspberry Pi. Finally, Rancher lies on the other end of the complexity spectrum, as it's built for hardcore Raspberry Pi enthusiasts who want a dedicated management platform for their huge Kubernetes cluster.