Create remote access home server

I would like to create a home server which will allow me to do the following;

1. Allow me to access all my files, videos, music, photo's etc over the internet from all devices - note my devices, ipad, phone etc. will be connected to my wireless home internet connection most of the time but may also be connected to other wireless networks at times.

2. Access my Plex server and be able to view and play all media remotely using other devices.

3. Save files (e.g. word docs) from other devices to the server remotely

4. Download media using other devices (from remote locations) but save them to my home server so they can then be accessed remotely using Plex

5. Gain access to the laptop acting at the home server - Not essential but would be a nice to have
My plan so far

Use an old laptop to build a home server - this will be on 24/7 and will always be connected to the internet

The only device connected to my router via an ethernet cable will be the laptop (home server).

Who is Participating?

To be able to access any of those services remotely from your home server you need to sign up for a Dynamic DNS service like www.noip.com or www.dynu.com or www.dyn.com and download their IP update client on the home server you set up. You may need to (depending on the service) set up port forwarding on your router and on their website for the related domain you create with them. Then from a remote connection you would type the-name.at-service-you-chose.com:port number if you want a Top level domain like a .com some of these services would do that for you, however, some domain registrars offer a Dynamic DNS solution like these guys for free with your domain such as Namecheap https://www.namecheap.com/support/knowledgebase/category.aspx/11/dynamic-dns