Before i start i want to say that i DID search for this topic. None of the results seem to answer my questions about multiple purpose home server.
Hello All!
I want to build a home server for the following purposes:
- store files/media as a backup from PCs who have access to it
- Stream said media to specific computer connected to it or to a TV connected to the server
- Game server for minecreaft/terraria/etc (this will not be running 100% of the time and i will want to turn it off and on in order to free up memory for other tasks when needed
- Access files and stream from it from the internet so i can access it anywhere if need be.
I want it to have multiple account so many users in the home can have their own files on it with private permissions and each can stream media that only they can access (as well as a public stream for all users - but not guests)
I also want to be able to access it from the internet if possible. This way if i really need to i can connect to it from anywhere and pull files from it. I know this actually may be really difficult since my external IP may not be static (As many companies such as comcast, the ISP i'm unfortunately on) actually may change your external IP occasionally (but not very often). I have bought a domain name for the server from namecheap who offers a Dynamic DNS service to its clients. This way it can update its external facing IP correct.
A little background about myself: I am a Physics and Electrical Engineering Major with a minor in computer science. I do know a fair share of C,C++, and python. But i do not know PHP or other server languages. I have familiarity with windows/osx/linux, but my linux/terminal skills are not top notch.
I have tried to set up a home webserver in the past but school got in the way so i became too busy to pursue it. Also i found out that hosting websites from home is usually just a terrible idea since its not as reliable, has many security issues, etc. Now i have more time and want to make a home media and file server which also can host games so i can backup and store files easily.
How do i begin doing all this? How do i make sure the server is compatible with windows/OSX/Linux.
I was hoping to make it a linux server since i know its probably the best (although i am not a linux master).
If i can connect it to the internet (so i can access these files from anywhere) how do i secure it? How do i make it so only specific users can log in?
I have a computer in mind, here are it's specs. It's got no additional upgrades (so it has the RAM it came with - 8GB). Everything that it comes with is what it has.
I have the hardware I listed. Its a very old (read: 6 year) desktop I got a while back. I want it to be partly project but with an easy learning curve. I dont want to write my own streaming service application but I don't want it to all be "set it and forget it" as I do want to learn the basics of networking devices and connecting servers to the internet for file transfer/remote control/ etc
I don't know if virtualizing everything is the best for two reasons: 1) virtualization requires much more RAM 2) it seems kind of complex for this job I want to be able to have full control of everything remotely too, and if a virtual machine goes down how could i start it remotely? (maybe this isnt actually an issue)
I've looked into some things like Plex and OwnCloud but i want to make sure they integrate (i.e. i can upload media to the server with OwnCloud which Plex can then stream). I am totally open to alternatives, i only mention plex and OwnCloud because they came up in my research. Also i want multiple users to be able to access the server at the same time (streaming to many devices simultaneously -with same or different media, downloading/uploading files while someone else streams, etc)