Taking back control of my digital life
May 15, 2018
I am in the process of taking back control over my digital life. This may be long overdue if you ask some people, while others will scratch their head and hand me a tinfoil hat. Doing this involves self hosting important infrastructure, minimising reliance on third party services and making sure I own the content I actually care about. While content ownership is a pretty interesting topic on itself that deserves its own article, I want to talk a bit about the technical aspects of self hosting data, reducing reliance on the cloud and the actual benefits.
Taking back control is a process of one RaspberryPi at a time right now. Over the last two weeks I deployed three new ones in my basement rack. The first one is taking care of code hosting using Gitea and doing some light automation and continuous integration with LeeroyCI. Sadly the poor, little ARM chip is pushed beyond its comfort zone with running tests and builds for larger projects, so most of this work is done on the "big server". Another one is taking care of home automation, basically running homebridge to integrate weather, wake on lan and other services into our HomeKit setup. It is fully decoupled from the cloud, so the smart home is a little bit less of an tire fire than you would expect. The last Pi is running some communication and notification tools, IRC, Synapse for Matrix / Riot and a service I can send a message to via HTTP and get it pushed to my mobile devices.
There is a small NAS with a few disks hosting all data we own. There are two external drives rotated once a week to backup the really important data like business and tax documents. My wife being a digital media artist accumulates quite a few files and we are in the process of transitioning all optical disks to files we can actually watch hassle-free. The NAS also works as kind of "synchronise all" host for Resilio, so we have some kind of central file seeding even if all other hosts are offline. Resilio is one of those strange tools that take you hours or days to fully understand and from there you are fully sold. Initially you have to wrap your head around how it works, but after that it is quite nice to use. Except the fact that they messed up the systray icon on OSX and the color is wrong. And, of course, it is the primary TimeMachine target. I think the only thing I would like to have automated but have not yet is getting photos from our phones on the server, right now they still go through iCloud.
Accessing all of this when I am on the road is actually not a big problem thanks to a working VPN connection and a static IP. A nice side effect of always being connected to my private network is that I always have DNS based ad-blocking, which makes the whole Internet a better place.
You would be shocked how fast things can be. We have an Internet connection some startups in San Francisco would kill for, but our LAN beats it every day. 40 Xeon cores, 64GB memory and an SSD raid are faster than most cloud servers you are willing to pay for, so even resource intensive workloads are handled in a very reasonable time. Having work related infrastructure in house, even if it requires some maintenance is in my opinion worth it if you use it on a daily basis.
Now that we talked about the infrastructure aspects, let me address the second part a little bit - content ownership. When you would ask me what my highest priority is when choosing software, I will say "usability" in nearly all cases. There are surely a few edge cases where performance, platform compatibility and other factors become more important, but those scenarios are really rare. For my online presence this basically means: Blogging on Medium or Wordpress, shorter content goes to Twitter, photos go to Instagram and Facebook, screenshots to DeviantArt.
I am sure this setup would work perfectly fine, but with each platform I lose ownership and control of my content. As you are surely aware you build an online portfolio and persona with everything you publish - as long as you link it to your name. Having third parties involved means the more you rely on your online persona, the more you are at their mercy. What if they decide to terminate your account? What if you article on how to setup Docker is accompanied by advertisement for adult entertainment, or worse, Windows ME?
A personal problem with all of the platforms I listed is the fact that even if I am okay with the platform providers collecting, analyzing and selling my data, this is not necessarily true for consumers of my content. Owning as much as possible of the infrastructure and software means I can minimize data collection as much as possible. I do not really care about how many pages a visitor looks at when reading my blog. There is hardly any value, if any at all, for me to get out of click tracking. And I definitely do not need inspiration on what to buy next on Amazon by looking at your purchase and search history, I already got a too long shopping list.
As long as I can remember I never used a hosted service for my online presence, be it a portfolio or my blog - the one exception being Tumblr. When I moved to a static site hosted on S3 and lost the ability for quick updates I initially posted smaller notes, just a few sentences, maybe a photo, I wanted to share on Tumblr. The comfort of an always available web interface without the fear of CDN invalidations breaking or the site not being properly generated due to an formatting error was very welcome. But at some point those notes moved to Twitter and photos to Instagram. I am not really a big fan of the latter and the former tries everything to make themselves as unattractive as possible. So here is my genius three step plan, partly executed already.
- own media uploads - I use Dropshare to quickly upload media from all devices to S3
- create a subdomain or directory on this domain for some kind of microblog
- setup a repository with CI for deployment for the microblog - at least for now that is a sufficient amount of comfort
You may now be asking if all the work to get those things setup, configured and maintained is worth it. To me, yes. Having a lot of the drivers of my daily work in house provides a direct improvement in usability and performance. Getting my work done easier and, or faster is simply a huge win. Owning my online persona is simply getting more and more important for me, as it should for a lot of people who do not really care about it or think about it yet. While it adds a bit work, after the initial setup, to the monthly todo list, I would encourage you to give it a shot.