I’ve been using Portainer to manage my homelab stacks from a single dashboard, which is more convenient than the CLI, but I’m not very satisfied with it so I’ve been looking for alternatives.
Portainer often fails to deploy them and is either silent about it, or doesn’t give me much information to work with. The main convenience is that (when it works) it automatically pulls the updated docker compose files from my repo and deploys it without any action on my part.
Docker Swarm and Kubernetes seem to be the next ones in line. I have some experience with K8s so I know it can be complex, but I hope it’s a complexity most paid upfront when setting everything up rather than being complicated to maintain.
Do you have any experience with either one of these, or perhaps another way to orchestrate these services?
This is definitely an over-engineered setup…
I store my Docker Compose files in an internal-only git repo (hosted on Gitea).
Drone is my CI/CD system, and I use Renovatebot to look for updates to container tags (never pull
latest
). My workflow is this:master
) kicks off a Drone workflow that does the following:git pull
, thendocker compose -f "$D" pull
and thendocker compose -f "$D" up -d
.I’ve written about step 3 here.
This means I never manually update Docker Compose files, I let Renovate manage everything, I approve PRs, then I walk away and let the scripts run.
I also run a single-node K3s cluster that is hosted on GitHub. Again, using Renovate to open PRs, and I run Flux so watch for changes to
master
, which then redeploys applications.