Last year I bought RaspberryPI Model B at my local electronics store. As for most people, my goal was to have a miniature home server for various things, most of all a local cloud storage and a media server. I learned a great deal doing this and the RPI is very much capable of doing it all with memory to spare, despite what people were saying that it’s too slow and stuff.
Of course, if it’s just a cloud you want and don’t trust Dropbox, then a VPS is probably better (not necessarily cheaper though), but in my case I needed more than that, because I have some things like TVs, sat box and other stuff connected and so a VPS didn’t suffice.
In a nutshell, my RPI has heatsinks on it, is put in an acrylic case with a compatible 6v fan. The RPI is running Raspbian for an OS, MiniDLNA for media streaming, Seafile for a cloud, Samba for network drives, Transmission for the seedbox. I’ll talk about each of these and why I chose them.
The case and cooling
I bought RPI model B last year and immediately started reading about it, I set it up with Raspbian and used a small cardboard box as a case for it :D
I had put heatsinks on it, bought those on dx.com before RPI. It’s said that the raspberry is designed to work in enclosed cases without any cooling, but even with heatsinks on it was heating up to 50C which doesn’t look very good (might the cardboard case also added to this but whatever). But that is probably for stock rpi’s – mine is put into Turbo Mode. It’s known that high temperatures decrease speed of computers (more or less :P). So I decided to ditch the ugly cardboard case and go for something more solid – so I bought a proper acrylic case with a 6v fan for it which drastically improved the cooling. On a normal day the rpi doesn’t get over 35C, normally it circulates around 29C, doing some bigger calculations, like zipping up a file, it goes to 31C and very rarely ever reaches 32C-33C. So I’d say this is pretty good.
The case is very good and solid, but when I first assembled it, the case had the main holes misaligned. I had to use a file to widen the power supply hole among other things…
Assembled and connected it looks nice :D
After few months into using it with a fan I noticed that it started to heat up a little more than it should. Of course it sits in a dark, dusty attic corner, so normally it would gather dust, but I didn’t realize how much. It had sucked up quite some dust and hair (w00t) during those few months heh :P
Then I remembered I read somewhere before that you can use stretched out pantyhose as a dust filter, there were great reviews about such dust filters, so I tried it out. Found some thrown out pantyhose (don’t ask me where mmk), stretched it over a large PSU fan frame and cut out a cardboard frame, glued the fabric in between and I had myself a dust filter!
It looks OK and it is OK, but not perfect. These last 2 pictures shows the result after a full month. It does catch almost all the dust and all of the hair, doesn’t limit the airflow at all, but doesn’t catch the most smallest dust, so some still get sucked in, but that’s no biggie, it can be easily cleaned with a compressed air or simply blowing at it, as for cleaning the filter – brush the dust off.
I think I may have stretched it a little too much so the holes are now too big, but too little would limit airflow and that isn’t good either.
The storage
For storage I’m using a 160gb SATA drive in an enclosure. As a mini-server it’s more than enough for my needs. I used to have an old 40gb IDE drive in an enclosure which was OK at the start, but as time went by I’ve saw that I need more, so 160gb is good at this moment. For the new drive I had to buy a case – I found the old drive laying around. Then I bought a Logilink case for it (can’t find the exact model, but this is very close).
Using that old 40gb drive, HDD or the case supported sleep mode by itself, which means the drive would spin down when inactive for X minutes. It was a cool feature and no extra software required. When I got the Logilink one, it would go to sleep mode if you unplug the USB cable. Which means this drive would spin all the time as long as it’s connected to some machine – while it’s good to have the drive spin all the time so you don’t have to wait for it to spin up again, this also isn’t good for me because I don’t use it so intensively, so during night time it should stop spinning, since nothing would use it… to get it spinning again, it takes around 1-2 seconds.
So I found a tool called Spindown on Google Code. I remember trying it with that 40gb drive and this tool didn’t work. But with new 160gb drive this tool does work. You can have it run as a service and I have it stop the disks when it isn’t used for 30 minutes.
Media streaming and files
One of the main things that people buy raspberry for is to have a cheap media server at home, networked or not, it’s great anyway. I use this feature as well and for that I installed MiniDLNA on it. Some say it doesn’t function properly, like it doesn’t update the database whenever a file is put or deleted, or that it stops streaming after an hour. For me it didn’t work out of the box, had to do some tweaking here and there and in the end it works like a charm, uses a small amount of memory. I have a few devices connected to the network and one of them is my TV. In the past I was using flash drives but now it’s much more convenient.
Samba is configured for few shares for general files, backups, downloads and one for a satellite set-top box for recording movies and whatnot – I can schedule what and when to record if I can’t see it at that time and watch the show later.
Cloud storage
This is where debates, how useful it is, start. Having a personal cloud is awesome if you can set it up properly :P I am the kinda man that likes technology and don’t trust providers and like to have such stuff for himself. Also my internet is pretty slow, so synching bigger files with a cloud somewhere on dropbox would be very slow, not to mention lack of space and paying each month for more space. So in a nutshell, I want to have it on my own, so SHUT UP!
Now, when choosing software for it I tried ownCloud and Seafile. Currently I am stuck with the latter because it works flawlessly. ownCloud looks good, it has a plugin system (though not very actively maintained and developed), the interface is clean… that’s as much as I remember good things about it. Now bad stuff is that it requires Apache which is a memory hog on RPI, it was VERY slow, didn’t have some sharing capabilities and most of all, multiple file upload was b0rked in a way that ownCloud would skip some files with errors. I don’t know if that was fixed later. It didn’t have proper synch programs, there were no official apps for android that would just work. After trying Seafile I don’t want to go back.
Seafile doesn’t use Apache, it’s based on Python and uses a simple internal web service, has a good desktop synch program, works fast and stuff. Go read reviews somewhere… :P
Seafile had issues with uploading multiple files as well, skipped with errors, but they fixed it eventually and now it’s very cool.
Seedbox
In my case it’s more like Leechbox, because I can’t seed properly with my connection without lagging all of the bandwidth and I can barely download stuff either, but nonetheless I use Transmission for torrenting.
For this I also used 2 programs – Deluge at first and then Transmission. Deluge was good, can’t remember exactly why I changed it to transmission but something specific didn’t stick, I think it was something with not being able to replace trackers… though it has a pretty nice scheduler – you could set speed for every hour of every day, on transmission you can only set speed for what days you want it applied to. Pretty basic but good enough. Also Deluge didn’t have that many clients to choose from, while transmission has few clients and “Transmission Remote GUI” is the best in my opinion, as it looks very close to uTorrent :D
Conclusion
RaspberryPI, as expected, is a very handy and very cheap (running off of a 2A phone charger) home server for any kind of application, I am very glad I bought it. Currently it has enough memory and speed to be reliable and fast enough, but I have plans to buy RPI2 for the same price! Cloud storage comes in very handy every day, since Seafile supports public folders, where anyone can upload stuff to it, I can use it instead of a flashdrive for small files.
EDIT 2018.03.26:
The raspberry has been replaced with a much more capable computer odroid for same stuff mentioned above because of my server needs. Now I use raspberry as a simple smart-tv alternative with OpenELEC and Kodi.