A self hosting journey

Created: February 7, 2019

Introduction

Would like to say that I have valid privacy or security concerns. Or because it can be done better. But the reality is, I just want to self host because I can.

Where to start?

The awesome self hosted page lists just about every cloud service I use with a replaceable near-quality solution, if your willing to sacrifice a bit for it.

The other appealing factor is that most of the solutions can be containerized and reproducible across servers - meaning more availability.

Tools like Chef, Ansible or straight up custom scripting can create server-in-a-box, ready to deploy. Backups and a data migration plan is another story.

In terms of servers, choosing hosting located in your country of origin is a safe bet for taking advantage of privacy laws for your data.

As side note I have already abstained from all social media for the last few years, preferring journaling in a non-judgmental way. This also has a benefit of avoiding social engineering attacks.

On the rare occasions something is actually worth sharing, Mastodon an open source Twitter clone, is a fine alternative that allows hosting your own server instance. (#Tweets2Toots)

Notable mentions for services

  • Matomo Analytics and related mobile app for replacing google analytics
  • ZNC always connected irc server/bouncer for chatting
  • Portainer for docker container management
  • Gitea for version control replacing github/bitbucket
  • Nextcloud for cloud storage and related mobile app
  • Bitwarden password management and related mobile app
  • Emby media server and related mobile app
  • Syncthing device synchronization and related mobile app
  • Jenkins for continuous integration

Super nice that a lot of these solutions include mobile.

Disadvantages

  • The invisible hand of enterprise is hard to let go of for security1, availability2 and capability3.

  • Have to pay for server costs compared to ad-based services4.

Advantages

  • Reduced dependency on foreign parties.

  • Knowledge and experience acquired setting up and maintaining.

  • Increased privacy.

Conclusion

I find a certain sense of satisfaction from being in control of all my services.

Deploying and maintaining servers is a pretty good DevOps/Software Release Engineer skill and could be useful in the future when machines do all the software development.

There is much to do in my setup, especially around mail hosting and keeping the system reproducible. Using dokku for a PaaS still enables easy deployment of git projects.

I won’t bore you listing out the specifics and leave it as an exercise for yourself!

2: To serve the most amount of customers, you need the high availability. If your serving yourself, family, team or friends, might not need to go beyond a recovery plan.

3: Specifically ground breaking research like machine learning, or just the sheer depth of experience and time put in.

4: Doing this anyway and it makes my data dependent on my income…. But there is not much in this world that isn’t.



comments powered by Disqus