Introduction

I have been working on my home server setup on Raspberry Pi 4. I’d like to deploy all of my services/tools in docker containers, and for that, I need a nice and fancy container management tool I want to have on my home server.

I had checked multiple sources, and finally picked two; they are Portainer and Yacht. Portainer is a well-known container management tool and Yacht is fairly new. In this post, I would like to give my thoughts on both tools.

⚠️ Before we start, I just wanted to give a quick disclaimer; “This is neither a sponsored nor a promotion, purely came out of my simple observation here”.

Portainer

👉 https://github.com/portainer/portainer

👉 https://docs.portainer.io/

Portainer

Portainer doesn’t require an introduction, is well known, written in Go lang and has 24k stars on Github. I find it a simple and powerful tool to manage docker containers that comes with Community Edition(CE) and Business Edition(BE). It also has integration with Kubernetes.

Architecture

👉 https://docs.portainer.io/start/architecture

As I said, it is simple and powerful, because of its architecture.

Portainer

It has mainly 2 components, which are “server” and “agent”(and edge agent). By using agents it can manage containers on multiple locations/servers. But in my case, I don’t have to install an agent, since I only have one Raspberry Pi. I can deploy a single container and manage containers on the Raspberry Pi itself.

Check out my docker-compose files here

Yacht

👉 https://github.com/SelfhostedPro/Yacht

Yacht

I like Yacht at first look, it is simple and displays CPU and Memory utilization on the dashboard itself which is a big win. It is a very young project, written in Vue and has around 2k stars on GitHub

Unlike Portainer, it is simple and doesn’t have an agent to get stats from multiple locations

Brief Comparison Table

Ok, let’s look at the direct comparisons.

📃 https://github.com/veerendra2/raspberrypi-homeserver/issues/1

PortainerYacht
UI- Simple UI
- Most of info(CPU and Memory usage) visible at a glance
- Simple UI
- Have to browse info like CPU and Memory
ArchitectureServer and Agent. Can monitor multiple serversSimple, only monitors one host that is deployed
IntegrationsK8s, Docker swarm, Azure ACI, NomadN/A
Docker-compose projects
❗ Deploy apps from docker-compose.yml from Git and local files
Only deploy apps only from remote git, not from local file systemCan deploy from the local file system and remote git repo
Container management
❗ Like view logs, stop, kill, pause of container etc
YesYes
Predefined app templates
❗ Deploys application directly from templates
YesYes
CPU and Memory usage
❗ Observed with docker stats command. Screenshot here from #1
Relatively lowRelatively high

After observing brief differences, I decided to go with portainer, which has relatively low CPU and Memory usage which is important on ARM devices