What's in a Cloud?

What's in a Cloud?

When I decided to begin hosting my own cloud services and get off Google, Microsoft, etc., the first thing I did was start documenting the things I absolutely needed.

I ended up with a list of things that I think most people care about:

  • Email
  • Contacts
  • Calendar
  • File storage
  • Kanban board for projects
  • A blog platform (hi!)

And then some things that are important to me as an Engineer:

  • A Git server and web interface
  • Single Sign On
  • Automated build server

In addition, I wanted to have some way of easily managing my media:

  • Automated photo uploads and online viewing
  • Streaming movies and music from home

The length of the list was the first sign that this was not going to be easy. Even figuring out where to begin was a bit of a struggle. I decided to start with finding somewhere to put all this "stuff".

My digital home away from home...

With the easy part done, I decided it's time to get down to finding somewhere to actually run these services. I had a Rasbperry Pi (a small computer), so that was an option, but I don't really want to be limited by my home internet service provider (ISP) or worry about power or a failure at home and losing everything. I decided I would look for some cheap hosting provider. I really wanted either a Virtual Private Server (VPS) or a bare metal server somewhere. Since I was only interested in hosting for myself, a single user, I was looking for a provider that leaned towards the lower power, high affordability side. This lead me to both Scaleway and Vultr. Due to pricing I ended up picking Scaleway, but I use Vultr from time to time as well.

... and home at home

That said, there are times when I want my data to be hosted even closer to home. Or rather, from my home itself. I don't really want to be paying for upload or downloads for my entire photo library to some server in Europe. It's also not a big deal if my photo library is unreachable for some short period of time. For those reasons I decided on using my Raspberry Pi and a NAS (basically a small computer with a stack of harddrives) to host a few services out of my home.

So, what's my cloud really made of?

Ok. So now I had a list of capabilities I wanted and places to put them. I went about hosting them according to availability and privacy needs and ended up with the following:

Scaleway VPS1

Scaleway VPS2

  • Drone (build server for dev projects)
  • A bunch of other small dev projects

Home Raspberry Pi

Home QNAP NAS

  • Airsonic (music streaming)
  • Plex (photo backups, music, movies, tv)
  • MotionEye (home camera monitoring/recording)

This represents pretty much everything that I use. There are other smaller things like Minitor and Dockron that keep things running smoothly, but they've been explained at length already.

If you're interested in an explanation of how I am managing everything, check out my past post: Docker Orchestration from the Couch