I have setup plex and transmission to be accessed through the webui. My question is how can I let friends access these features from an entirely separate location?
The answer by user21572 talks about port forwarding, which is a way to access local resources from outside a local network, but for Plex at least, that wouldn't necessarily be required if this option works for you:
The makers of Plex Media Server offer a service called myPlex which allows registered myPlex users to share their Plex Libraries with other registered myPlex users. You can read more about myPlex and its other benefits here: https://my.plexapp.com/
It doesn't cost any money to register, but you do need to give them your information. Plex takes care of the external access. I have never had an issue using myPlex to stream outside my network.
(Except, of course, for low-quality video, because I am a little limited in upload bandwidth.)
Your other option would be a VPN solution, to access local resources through a secure tunnel. This would require quite a bit more setup than port forwarding, but it would be a little more secure.
This is a rather complicated problem. If you are at home (I assume you are), you will need to forward the ports from your router to the Ubuntu server. How to do this depends on your router, but you should look for "Port Forwarding" or similar. Secondly, you'll need to either have a static address for the external interface of your router or you'll need to register for a dynamic DNS service, of which there are many. Simply search for them and choose one that offers free service. You might also check your router to see if it natively supports one of these services.
That should be all you need to do.