Personal Server
For every interaction you do on your mobile device application or via an internet browser there is a server somewhere on the Internet that you don’t have much control over. For most applications this remote server just provides an always-on computing server to process your data and send results back to your mobile device or your PC. A simple application is a mail server, an essential communication application that most of us use every day. All it does is collect mail messages on your behalf that you then download to your mobile device or PC for replying, forwarding or long term storage. Most of the applications that we use follow a similar pattern. Remote servers are typically used to store and process your personal application data. When we use them we are giving up our personal data and privacy to a third party. With computing so cheap, why not own this server in the privacy of your own home or in the cloud as a Virtual Private Server at a very nominal monthly subscription? Owning your own personal server provides full control of your data and keeps companies from mining and misusing your personal data.
There are other personal server applications that provide a compelling case to own a personal server, such as owning your own personal communication system to do end to end encrypted instant messaging, using voice and video chat, managing your smart home devices, joining a federated social media platform to share your tweets and posts without censorship, and many more. In this article we will look at some of these applications that you can setup and break free from the centralized monolithic internet services and still be connected via federated network to everyone using the similar applications with same standards and protocols.
Decentralized computing with Personal Server
Most commonly used personal server applications are e-mail, messaging, voice/video chats, social media posts, document/media sharing and, more recently controlling your smart home devices. Electronic mail was one of the first truly decentralized application ever created. Unfortunately, the “free” services pioneered by Hotmail that was replicated by Gmail and others led to the growth of the surprisingly invasive email services that are currently in practice. While these are easy to sign up and use, such services have become a conduit for leaking personal data. Consumers often unknowingly agree to the fine print and are largely unaware of how their personal data that is harvested through these services are used and in some cases to their own disadvantage.
A continuous feed of personal data from these services whether it is e-mail content, social media posts, web site navigation history, telephonic conversations, text messages, smart home device sensor data, power the data algorithms and machine learning artificial intelligence applications that have the potential to impact every aspect of our personal lives. While there is no argument that such services do enhance everyday conveniences, they also come at a cost of personal privacy which indirectly affects the individual in countless ways, whether it is suppression of political thought and expression, loss of leverage to potential online deals, silent digital discrimination that consumers and citizens are unable to comprehend, surveillance by repressive regimes, or that well known “creepiness” that everyone has experienced as we navigate and use web applications of today.
There has to be a better way while still leveraging all that technology has to offer us. Lately, there has been a trend increasingly driven by users and organizations who value digital freedom and privacy to build decentralized applications on the web. Imagine a world where personal computing is completely decentralized but always connected and secured by encryption that is owned by each personal decentralized node. A connected decentralized computing network opens up a whole new set of computing applications that will empower the individual, increase resiliency of all connected services and, at the same time improve personal privacy and digital freedom. Decentralized computing can disrupt the current status quo of centralized computing where little control is given to users.
End-to-end encrypted decentralized computing can give rise to a hidden web that can make enforcement of laws to prevent trafficking in illegal content difficult. However such usage is limited to few bad actors. Governments and law enforcement officials routinely cite security and difficulty in law enforcement as a reason why they would want to put controls on encryption and relax privacy protections. But the majority of users are law abiding citizens that would like to interact and communicate personal data without surveillance. Businesses can also benefit by releasing themselves from the liability of managing their users’ personal data and let users be responsible for their own data on their own personal servers. Of course, easy secure out of the box configuration and protection software on the personals servers are critical for mass adoption.
Decentralized Applications You Can Use Today!
I would like to list a number of freely available decentralized applications with permissible licenses that you can install on your own low cost ($150-$300) personal server (PS) or that old desktop computer you have not touched in while at home or a virtual private server (VPS) in the cloud for under $10/- a month under your complete control.
Postfix based Email Server
E-mail is one of the most commonly used communication methods used by everyone. Having your own e-mail server requires a domain name. Having an e-mail server that can receive and send your e-mails can protect your data from being scanned by third party service providers. Once the mail server is setup, e-mail can be easily accessed from a smartphone using preinstalled mail client application or a desktop using mail client like Thunderbird, Microsoft Outlook, or Web mail clients such as Roundcube etc.
Having a mail server also enables you to create unlimited mail boxes for yourself and your family. E-mail was always designed to be a decentralized application. The application will still work if the server is temporarily down. The retry mechanism is built into the protocol.
Matrix based end to end encrypted secure communication – 
Matrix is an open network for secure end-to-end encrypted decentralized communication. A user can use their own home server or join one of the publicly servers. It allows end-to-end encryption for text, voice, and video communication. Installing a matrix home server for personal and family use can provide protection for personal communication. One can communicate to any other user on another matrix server thereby creating a federation. Plugins are also available and being developed to other popular messaging service and telephone networks.
A number of free matrix client software is available on all popular smart phone devices and desktop computers such as Riot.im, Weechat-matrix, nheko, or Quaternion, each of which enables easy connection to any matrix server to facilitate end-to-end (E2E) encrypted text, voice, and video chats between users on your own home server or any matrix server.
OwnCloud CE for document and media sharing – 
OwnCloud is one of the largest open source content collaboration platforms. You can sync files from your desktop similarly to DropBox or Google Drive. When you host your own instance of OwnCloud on your server, you own the content and protect it from being available to a third party service provider who may use the content to serve advertisement and potentially exposing private confidential data.
Sharing and access to files is possible using one of the many clients available for desktop, iOS, or Android devices. Sharing links to your documents can be done publicly or using protected links on which you can set a password and expiry time. This is an indispensable tool when you don’t want to send documents via e-mail and instead send protected links and communicate the password to the user separately or allows you to set an expiry date for the shared links, so that they will not be accessible after a specified time.
Mastodon powered decentralized social media – 
Mastodon is a federated social media platform forked from Gnu Social. It uses the OStatus or Activity Pub open standard protocol that enables one website to send and receive status updates on another server instance. There is an active development community for Mastodon and it has become quite popular with users who want freedom to post and follow whomsoever they wish without corporate or state censorship. It is an alternative to Twitter and Facebook with complete control and ownership of your content. You are free to post and follow any user in the federated network of Mastodon servers from your own instance of the Mastodon server. You can also join other server instances that tend to specialize on various subjects. Of course each Mastodon instance owner will have their own policies on what they will allow to post on their servers. Controlling your own servers allows you to create your own policies and allow others to join. Users can be part of any Mastodon server in the network and still be able to follow any other users in the federation. This is a true decentralization concept for digital freedom that still allows users to stay connected.
Access your Mastodon server or any other Mastodon server instance using a host of clients available for desktop, iOS or Android devices. A full list available here – https://github.com/tleb/awesome-mastodon#clients
OpenHab to power a smart home – 
OpenHAB is a vendor and technology agnostic, open source automation software for your home. OpenHAB uses a pluggable architecture that has support for 200 different technologies and systems supporting thousands of devices. You can install an instance of OpenHAB on your personal server and use the OpenHAB client via the web browser or iOS or Android apps to control smart devices in your home. All this without sending your home data to any third-party services in the cloud.
Challenges and Getting Started
When choosing a personal server to install in your home, look for a small mini PC, ideally a fanless system for quite and long lasting operation. There are various kinds of small mini PC you can buy at Amazon and other places on the internet. Pexus LLC also offers a few options here. Look for a minimum of 2GB to 4GB system with at least 40GB hard disk/persistent storage option with an Ethernet port. Monitor/Keyboard/Mouse is not required once you install the basic operating system and have your server connected to your home LAN (Local Area Network). You can do all management using freely available Webmin using a web browser or via SSH/Putty terminal.
If you don’t want to deal with buying hardware and installing it in your own home, you can try a Virtual Private Server (VPS) as your personal server. Prices to host a VPS has come down considerably these days and will continue to drop in future. You can buy a monthly subscription from a host of cloud providers that offers cheap VPS under $10/- month. Linode and Digital Ocean are two cloud provider that offers VPS. A little bit of research on the internet can provide you more options. I personally use Luna Node which is hosted in Canada. They have been in the business for a number of years and provide great service at very reasonable prices.
You will also need a domain name and DNS management service. A domain name will cost you a $1 a month or so. There are number of Domain Name service providers where you can buy a domain, but you need to see if they charge for managing your domain name. www.dnsexit.com provides free management of your domain so this is good for personal use. You can manage the domain even if you bought the domain from some other domain name provider. You can create any number of hosts and DNS records such as MX (Mail Handler) and more, which will be required if you host your own mail server and other applications I have mentioned in this article. Hosting a personal server in your home with a dynamic IP address will also require a Dynamic DNS update that is included as part of DNS Exit domain management service.
Putting together these applications on your own requires one to have some basic knowledge of Linux/Unix operating system and some patience. Again if you are complete novice to Linux, check out free resources on the internet for a basic intro to Linux, like one here .
There are number of installation instructions and getting started recipes out there for these applications. I have created a list of these recipes that will help you get these applications on your personal server.
- Choose a Linux based operating system. You can select from Debian or Ubuntu.
- Once you install the basic OS, other required packages for each applications can be easily installed when installing the application.
- Install Mail Server – https://www.tecmint.com/install-postfix-mail-server-with-webmail-in-debian/
- Install Matrix Synapse – https://www.natrius.eu/dokuwiki/doku.php?id=digital:server:matrixsynapse
- Install OwnCloud CE : https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-owncloud-on-debian-9
- Install Mastodon : https://docs.joinmastodon.org/administration/installation/
- Install OpenHAB : https://www.openhab.org/docs/installation/
Alternative Solutions and Services
Installing and maintaining these applications may feel daunting for everyday users. Turnkey solutions for some of these applications are available from various companies. For example Matrix-based personal communication server hosting can be purchased from Upcloud.com, likewise OwnCloud hosting is available from a number of hosting providers. Mastodon hosting is available from Mastohost
Most of the above providers are point solutions and may not have the flexibility to add all the applications discussed in this article. For complete flexibility you will have to have complete control of the Virtual Private Server.
Pexus LLC offers an easy configurator application to configure most of these applications easily. The configuration application includes wizards for Email Server, Web Mail, and Postfix Admin configuration, OwnCloud install and configuration and many more operations. New applications are being added on regular basis. Pexus custom Debian OS with the configuration application is available for free for DIY setup on your own PC hardware at home. For more information checkout https://store.pexus.net/solutions/sol-pps
Alternatively Pexus LLC also can provision a personal server as a Virtual Private Server with the custom distribution and configuration application in the cloud. For more information on Virtual Private Server option visit : https://hosting.pexus.net/
Author:
Pradeep Nambiar is passionate about enabling users to use secure personal servers to create a decentralized computing experience to further individual digital freedom on their own terms. He is the product architect of Patriot PS Personal Server and in his free time as one of the principal of Pexus LLC explores solutions with compelling use cases for increased adoption of personal servers to build a decentralized web. He also volunteers his time to Information Systems and Security Association – Capital of Texas Chapter at Austin,TX
In his day job he is an information security professional working for Altran – A global Engineering and R&D provider. Mr. Nambiar manages secure engineering programs that help create secure software products and cloud applications. NOTE: All opinions, suggestions and thoughts expressed in this article are his and not those of his current employer Altran.
Editor:
Sidharth Nair is an incoming 2019 Freshmen to University of Texas at Austin, TX, pursuing Computer Engineering. He is an avid computer gamer, Minecraft and Runescape are his favorites. He is passionate about computing technology and Math. His current interests include Java, multi-threaded programming and cryptography.