My idea is to make home server using the Raspberry Pi one of the option is using Dynamic DNS.
Dynamic DNS is good but you have no flexibility assigning domain name and when it comes to paid service, there is some cost associate with it.
How to get the Public IP address ?
I start searching for Ubuntu hosting and comes to this list (in this scenario i took the most cost effective price at the lowest spec with 1 GB of RAM)
- AWS : good, reliable but pricing is not simple
- Alibaba : good price but limited to 1GB of bandwidth
- Linode : similar price as alibaba with higher throughput
With assumption only use to forward the packet to Raspberry via tunnel interface, the specification shall be sufficient. I avoid installing many application that is consume a lot of memory.
Of course will review once i need to upgrade the VM.
Here’s the basic idea
Seems like a plan, right?
Will it work? of course it will work.
By the time i write this document, my web server is already running on my Raspberry device and it is running on my home network (far far behind my cable provider firewall).
Ensure you follow the instruction carefully.
You won't get lost!!
Let’s identify what software is required to realize this idea
Server Side
- OpenVPN Server
Why Open VPN server? because it is new to me (never try before).
I run VPN using PPTP and L2TP for years and i want to try something new. at the end it’s tunnel anyway so choice is yours.
Why HAProxy? because it’s simple and i use it before. and easily to forward custom port.
May be we can use Nginx as reverse proxy, but i prefer to use Nginx as Web Server.
We’ll discuss more detail in other document for OpenVPN Installation and HAProxy Installation.