Create Your Own Home .NET /Apache Web Server In 30 Minutes

Most C# developers have been yearning to install their work on Apache and Linux, using the Mono project for years. Unfortunately, this has been historically very difficult, since the documentation for how to do this has been lacking. In addition, securing and configuring the system after you've installed it, often requires a whole slew of knowledge with which most C# developers are not very familiar. In the following tutorial, I will help you setup Phosphorus Five on a Linux Apache web server, and you could probably duplicate my efforts, in half an hour. No former Linux knowledge is required to duplicate my efforts. 

So first, what is Phosphorus Five? Well, it's a web operating system, or a Home Cloud, built in C#. On top of C#, I have created a modularized programming language, which allows for orchestrating your apps and modules together, in an extremely loosely coupled fashion. This makes it perfect for a modularized web operating system, which allows for installing your own personal home cloud, in your living room, while having access to your home cloud, from anywhere you are in this world. The first YouTube video in the reference section illustrates the system from a user's perspective. 

First of all, find an old laptop, and install the latest Ubuntu Server on it, or install VirtualBox on your existing machine. I prefer using an old laptop. When you install Ubuntu Server, you avoid a whole range of problems, you'd often experience when installing its desktop equivalent - Simply put, since the drivers are much more easily available, and there's much less hassle installing a Ubuntu Server box than a Ubuntu Desktop box. Most Linux driver problems come from producers of graphic cards, and a Linux server doesn't even have any desktop environment, making the whole idea of "graphics" a mute point.

When you have done so, simply download the "install.sh" script, which you can find in this article's references, and make sure you make it into an executable, by typing in "chmod +x install.sh" in your terminal. You can download the install.sh script from your terminal, by typing in for instance "wget https://github.com/polterguy/phosphorusfive/releases/download/v4.1/install.sh" from within a terminal. Make sure you turn your script into an executable after you have downloaded it.

Then simply execute the script, by typing in "sudo ./install.sh" from your terminal, and your system should automatically install. After you've installed it, you'll have to figure out your Linux box' IP address, which can be done from a terminal window with the following command; "ifconfig | grep addr". Then you want to forward all requests on port 80 and port 443 in your router to this internal IP address. This is normally done by visiting 192.168.0.1 from within your browser, and logging into your router's administration system, and choosing e.g. "port forwarding".

When you're done with this, you'll probably want to install an SSL certificate on your box, alternative before you do, register a domain, or forward a sub-domain to your external IP address. Your external IP address is easily found, by searching for "what is my ip", and simply visit the first hit you get from e.g. Google. This is done by adding a new DNS record to your domain, which typically your domain registration will allow you to easily do, through their administration interface.

When that is done, make sure you install an SSL certificate on your box, which can be done by following the link in the reference section of Electronic Frontier Foundation (eff.org). This will give you a simple to execute the list of terminal commands, that will guide you through the entire process.

When you're done with this, simply visit your Linux box in your browser, create a server salt, a root password, and you're basically done. Effectively, you have created your own home personal web server, and you paid nothing for it - While in the process, you recycled one of your old laptops, and gave it a second life!

When you're done, feel free to visit your own box' "Bazar", which allows you to download a free webmail client, with PGP cryptography, that will render perfectly on every device you have. At which point, you have your own personal "GMail with encryption", in your living room, allowing you to cryptographically secured communicate with your peers, using PGP cryptography.

And absolutely everything, from the core of Linux to Phosphorus Five is Free Software and Open Source ... 

References

  • YouTube video demonstrating Phosphorus Five - https://www.youtube.com/watch?v=KTgkZoZq1l0
  • Installing Ubuntu Server - https://www.ubuntu.com/download/server
  • VirtualBox - https://www.virtualbox.org/
  • The "install.sh" script - https://github.com/polterguy/phosphorusfive/releases/download/v4.1/install.sh
  • Install an SSL certificate - https://certbot.eff.org/#ubuntuxenial-apache