If you have an older Windows PC (minimum 64bit with at least 2GB RAM), you can reformat it with Linux to function as a home server.
This is only an overview
This post is intended to provide an overview of what is possible. Over time, I will be posting detailed information on how to implement each of these steps. For detailed steps on how to install OpenVPN server software, see my blog post on the subject.
A home server running Linux can perform several functions:
File server
A home Linux server can be setup to run file sharing using a free program called Samba, which makes the Linux server act as a Windows-style file share, accessible via Windows or MacOS, and of course, Linux desktops. You can stream movies stored on your home server to your iPad over wifi using VLC media player, creating your own private Netflix.
VPN server
With a port forwarded on the router to point to the home server, a free program called OpenVPN can be installed and set up to provide remote secure access to the home network. For example, if you forgot a document on one of the computers in your home, you could connect via the VPN to your home server, then become part of your home network from a remote location, able to browse files and connect to desktops within the home network. There are OpenVPN client applications available for Windows, MacOS, Linux, Android, and iOS.
LAMP web server for testing, programming
You can configure a home web server to host Linux/Apache/MySQL/PHP (LAMP) web pages, allowing you to play with the same technology used by large web hosting operations. You can learn a great deal by installing a server and configuring each of its services. This learning experience will give you insights and make you a better administrator of the productized services you manage via web hosting and VPS providers.
A home LAMP server can be used for development of new websites and web-based programs, then deployed on a VPS or shared web host on a web hosting provider for production use with the public.
You can make the server visible to the public Internet by forwarding a port on your router. You can assign a semi-permanent web address to your server by using a service like no-ip.com.
Nextcloud image management application
Nextcloud is a free image management application that runs as a LAMP web site. Nextcloud can take the place of Google Images, or Apple’s iCloud storage: at least for the management of image and media files. By running your own image management application on your own home server, you maintain your privacy, while making files available for computers within your home network and from outside, via the Internet. Nextcloud client apps are available for Android and iOS.