Projects have a way of wandering, especially exploratory projects like this one. So let’s define some high-level goals to keep us on track if things get hazy.

Goal #1: Build a better self-hosted environment

Things I’d like to have:

But the breadth of a self-hosted environment is a bit of an unknown to me. What else are others doing with their self-hosted environments? VPNs? VLANs? Single Docker hosts or multihost swarms? Let’s find out.

  1. Identify the common elements of self-hosted environments
  2. Use those common elements to make choices about my own environment
  3. Create and action on tickets to move towards that target

Goal #2: Polish my personal projects

Over the years, I’ve build a number of side projects to explore new technologies and new ideas (two birds, one stone).

As fun as they were to build, these projects were never built with longevity in mind. They haven’t been subjected to the same rigour as my professional projects.

I’d love to get these up and into a self-hosted GitLab instance with proper linting, unit tests, CI/CD, monitoring, etc.

Goal #3: Explore recent development and deployment standards

It’s generally not worth the time to explore new technologies until they’re proven themselves to have staying power, sufficient community adoption, etc. I’d love to explore those that I’ve avoided up to this point, but have clearly shown themselves as emerging standards.

The first on this list would be Kubernetes. It’ll no doubt be overkill for my self-hosted environment, but the point is to play with these new techs, right?