As a way to keep myself up-to-date with trends in networking and web design (and as a way to keep myself occupied on really boring days), I run a private server. Many of the services we take for granted – email, online calendars, address books, chat programs, and media streaming to name a few – are provided by companies in exchange for access to the information used within them. In networking terms, this is called the client-server model: the client (your web browser, smartphone, etc.) makes a request to a server, which is run by a service provider such as Google, Apple, or Microsoft.
The client-server model creates an implicit relationship between your computer and the server. Somehow, the server needs to store and process it needs to fill your request. When you access your emails from multiple devices, the server needs to store and maintain a copy of your emails so it can accurately push the updates to each device. Likewise, when you store your emails directly on your computer, the server has no way of knowing what the current state of your emails is.
The web’s most powerful service providers – Google, Facebook, Microsoft – build and maintain enormous collections of servers to support millions of users. While much of the web has been built on the backs of these giants, the open nature of the Internet makes it possible for anyone to set up their own servers. With a little patience and a penchant for learning, you can provide many of these same services on a $5 monthly budget.
So what’s the problem?
One of the more frequent questions I get when I mention my personal server is: why? Why go through the effort when Spotify, Dropbox, et al will do the same thing for free? As I mentioned earlier, it helps me keep up with latest trends in networking. It gives me practical insight into some of the more theoretical concepts and terms I learned in college. It’s often just as fast or faster than some of the bigger services. At least, those are my excuses. The main reason I run my own server is so I can exercise control over my data.
One of the most frequently ignored rules of the Internet is that once our data is “out there”, it can never be removed. As Jules Verne described radio waves in Off On A Comet,
History is thus stereotyped in space; nothing once accomplished can ever be effaced.
Any information that you transmit over the Internet is intercepted, parsed, stored and archived by someone at some point for an indefinite amount of time. In 2013, NSA contractor Edward Snowden kickstarted a global discussion on Internet surveillance when he released classified documents detailing some of the ways governments spy on corporations, citizens, and other governments. The outrage from citizens and governments is so great that American Internet companies face potential revenue losses to the tune of $35 billion. Despite our predisposition to share our lives online through social media, we still rely on privacy to protect ourselves and maintain trust.
Generally speaking, privacy is a tradeoff between availability and security: while Facebook lets you easily communicate with friends and family, that information is being mined and marketed for profit. In essence, your life becomes their product. Exercising control over your own data reflects the original nature of the Internet, which was simply a way to transmit data from one computer to another. In those days there were few middlemen; if you wanted to use email, you had to install and maintain the software yourself. While it was a hassle, it made it more difficult for other users to intercept, scan, and store your emails for their own use. The same goes for file sharing, instant messaging, real-time collaboration, and other modern conveniences that we often take for granted.
What if I have nothing to hide?
One of the most common arguments against private browsing paints users as innocent, law-abiding citizens of the Internet. “I don’t have secrets, therefore I don’t have to concern myself with privacy.” I can’t imagine that anyone reading this blog is felonious by nature, but the truth is almost everyone has something they’re not willing to put under public scrutiny. If so, we’d have no problem putting live cameras in our bathrooms, our bedrooms, in changing rooms, in our cars, in our friends’ houses, in our backyards, etc. Constant surveillance encourages us to conform our actions, to adapt our ideas and beliefs to what we think they should be rather than what they truly are. When we feel like we’re being judged and scrutinized, we over-analyze our actions in a way that runs counter to our dynamic, intuitive nature as human beings.
On a less metaphysical level, leaving our information open to prying eyes can lead to damaging actions on the part of others. Every 2 seconds another US consumer has their identity stolen. Any form of insecure data transfer – whether it’s by a government organization or by a criminal organization – creates the opportunity for our private data to be stolen or misused, leading to more stress and suffering down the road. Private services constantly experience sensitive data breaches, and while it’s impossible for us to control what others do it is possible for us to reconsider how we share our personal data and who we share it with.
How do I get started?
Running a private server requires several somewhat complicated components to come together. As a result, this topic will be split across multiple posts with each post addressing a different area of concern. This post introduced you to the all-important why, and the following posts will explain the how. I’ll start with hardware, explain how to get your server up and running, describe how to use your server, and showcase some of the more interesting things you can do with it. Thanks for reading, and stay tuned for future posts!