CapRover has been a really great discovery for me.
Some years ago, and coming from the need to have an easy way to host some of my projects and apps and also a will to learn about Kubernetes, I got a real big server at Online.net (now they call themselves Scaleway and have focused more on the Virtual Server / Droplet / Cloud market), installed Proxmox, a KVM/Qemu based Hypervisor on it, ran OpnSense (a truly open source fork of PFSense) as my Firewall / NAT and several VMs, some with dedicated services, some other with a proper, HA Kubernetes cluster on it.
Fast forward a couple of months. After a deeply botched Kubernetes update (Kismatic to be partially blamed, and my own hurries doing the rest) I decided it was time to streamline. I didn't really need the redundancy and level of granularity that Kubernetes offered me, so I took a step back, and switched to Docker Swarm, offering all the functions of Kubernetes I needed at greatly reduced complexity. I was happy for a while, had a lot of apps set up and running.
Then around late 2019 Scaleway reduced the price for new customers of the server I was using back then by more than one third. I kindly asked their sales support if they would apply the new price to existing customers as well, to which they replied, essentially "well, sorry no" but that could, of course, cancel the current server and get a new one at the lower monthly price. I would, of course, have to pay the full setup fee again. Since my stack had been running comfortably in less than half of the memory of my 128 GB server and I was also keeping data just for the sake of keeping it, without any real value.
So I went off to Hetzner and their Server Auction, an interesting way of getting affordable, customized servers left behind by customers who cancelled their contracts. They are usually not the latest, greatest and newest hardware, but in good shape and quite reliable as well, providixng real bang for the buck, and, more important, they don't charge a setup fee for them. In the end, I have an 8-core server with 64 GB of RAM and 500 GB SSD for 33€ (plus Tax) a month
I also thought that my stack could become even lighter and more self-managed. When using Swarm and Swarmpit as a frontend, and Drone CI to manage deployments, I also used Traefik as the ingress controller and to manage SSL / LetsEncrypt certificates. It does a great job at this, automating certificate issuing and renewals, but requires quite some labels in the respective Docker Compose files.
And here is where CapRover enters the scene. It's a PaaS (Platform-as-a-service) that runs on humble hardware and harnesses the entire power and features of Docker Swarm
It's not only dead simple to install and quite lightweight, but it also has some very nice features, the most interesting being:
- Integrated support for HTTPS / SSL via LetsEncrypt
- A simple template (or Buildpack) based deployment system
- Good integration with any code repo that supports sending webhooks on commit
- A continuously growing collection of so-called one-click-apps that allow you to deploy many commonly used apps based on templates. Also, creating your own templates or modifying existing ones to suit your needs is very simple.
Of course, I could be building stacks manually and deploy them to Docker directly, or to Docker Swarm, and still manage Traefik ingresses with labels in my Docker Swarm compose files, but Caprover simplifies all these tasks. They say, it's built for developers, but it's also a fairly good option for anyone wanting to run their own stack of applications on a hosting server.
There will be additional articles on how I use and setup CapRover for my own uses. Coming up:
- System and container monitoring in CapRover with Cadvisor, Prometheus and Grafana
- Logging in CapRover with Filebeat, Elasticsearch and Kibana.