Image Hosting NAS

Hey guys,

Recently a few people have volunteered to make an app for my school that lets you upload photos you have taken at an event that our school is competing in and upload it for other people to see. Currently it will only run on iOS because the majority of the people who would use it own an iPhone. The app is just about done but we have run into the issue of where we will store the photos so that they can be accessed by others.

I suggested that the most cost effective solution in the long run would be to build our own server. I'm guessing that it would only need to be a low to mid range system to handle the amount of traffic (possibly a total of a few hundred people uploading photos within a 2 hour time frame every week) that it would recieve during big events such as a football or basketball game.

The teacher I'm working with wants roughly a 1TB harddrive and 8GB of RAM in the system. I'm guessing that we can get away with around 4GB running at 1600MHz and I want to have the possiblity of running multiple drives in a level of RAID if the need arises. He also told me that he can have it connected to the internet through an ethernet cable, so that rules out having to buy  a wifi adapter.  

I'm also not sure what kind of software the system is running when it is ready.

My plans at the moment are just to simply build a low grade (but solid) system that can handle reasonable amounts of traffic. I just would like some advice if I'm heading in the right direction or not and what kind of software I should use. I haven't looked into servers that much, hence all of my uncertainty. If anything isn't clear enough I'll try to clarify. Thanks in advance!

for the OS, you should run a server version of unbuntu or another linux distro. use a 1tb WD red drive for the storage, and put the OS and programs on another small hdd, like a 260g blue. 4g of ram should be plenty. the other software you need depends on how the app works. 

Thanks for the reply. Could you clarify what you mean by other software? Examples for just about anything would help.

like I said, it depends on how the app works. there are so many different ways of doing what your talking about, you can't know what you need without knowing how the app works. there are numerous ways of uploading files to a server, each one may require completely different software than another. only the programmers know exactly how the app uploads the images.

I see what you mean. I'll leave the software to the guy who programmed it then. Thanks for the help.

Here: http://pcpartpicker.com/p/BTZj

The SSD is optional, but using it to store the OS and programs would be highly advised as it will provide much faster restart speeds/general performance. You will not need a separate GPU because the AMD A4 has built-in graphics, albeit very weak ones. The CPU is weak, compared to modern i5/i7s or AMD-FX series CPUs, but a server doesn't need that much processing power, especially one this small. Install Ubuntu Server 12.10 or 12.04LTS (if you want long term support from Ubuntu; I prefer 12.10) on the SSD if you go that route, otherwise put it on a separate HDD, something very small, such as a ~250GB Seagate Barracuda or something. Configure the server software - the exact process depends on the software you guys have made - to store the photos on the 2TB drive and you're set. Use a direct connection - Ethernet - for the server, not wifi. Cheers,

 

Brennan Riddell

Well it is a college so if you are going with linux they might already have a subscription with redhat but if not I would recommend Debian minimal because there really is no advantage to running ubuntu server and debian minimal is less bloated.I know this from personal experience. I am sure your school will want to use windows server though.

Gross... Windows...

Wow, this looks great. We'll definitely consider this build when we chose the parts. Would you recommend getting two 4GB modules and running them in dual channel, or will it not make a difference for a server? Thanks!

Well, 2x 4GB sticks of RAM will run in dual-channel, and technically be faster. You could do that. I am just used to leaving the most room for expansion, but for such a small server, you won't need more than 8GB of memory. The motherboard supports up to 16GB, though.

Well, it's actually a high school so I'm pretty certain that we don't have a subscription with redhat. We'll look into Debian Minimal and see how it works with the app. 

Alright I see what you did there. We'll probably stick with 8GB and I'll see what everyone else thinks about running it in dual channel or not. Thanks again.

No problem - good luck with the project!