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
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
As I said, it is simple and powerful, because of its architecture.
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
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
Portainer | Yacht | |
---|---|---|
UI | - Simple UI - Most of info(CPU and Memory usage) visible at a glance | - Simple UI - Have to browse info like CPU and Memory |
Architecture | Server and Agent. Can monitor multiple servers | Simple, only monitors one host that is deployed |
Integrations | K8s, Docker swarm, Azure ACI, Nomad | N/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 system | Can deploy from the local file system and remote git repo |
Container management ❗ Like view logs, stop, kill, pause of container etc | Yes | Yes |
Predefined app templates ❗ Deploys application directly from templates | Yes | Yes |
CPU and Memory usage ❗ Observed with docker stats command. Screenshot here from #1 | Relatively low | Relatively 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