What kind of services do we usually need for home/personal usage? Having just a personal computer is long gone. We use tablets, smart phones, storage systems (NAS), … and with all those gadgets we access numerous on-line services. Mostly we consume but also produce some content – images, videos, writings. Therefore we establish a need to have a central storage space. There are many cloud based storage providers aka on-line and if the speed and customization is not the issue just Google for the best price/performance solution. If you need a decent/LAN speed or/and you don’t have a fast internet connection than you forget about cloud storage. If you need some additional services like: own web hosting, digital video recording, mail handling, torrent downloading, … with various automation than read further.

Research phase

Since I gave up buying a ready product I had to define scope for a DIY project. If you want a low power consumption than there are not many options. X86 based systems are usually more expensive or too power hungry so I look for an ARM based board. When it comes to ARM the most known mini is Raspberry PI which I am using for media centre. Since I already know the power of it I know that it’s not good enough for this job. I quickly find out another promising option – Cubieboard, especially the newest Cubietruck. A 2Gb A20 with 8Gb Nand, gigabit NIC and SATA for 89 USD. Wo0hooo! I just have to wait a week to be released for sale, a month to get it from China.

Month later

It came. Customs + postage and handling came roughly 100 euro. Since I was planning to use a 3.5 inch 3T SATA drive which requires 12 Volts I also needed a proper PSU unit. I found one on Dealextreme and it’s performing good.

The board came with pre-installed Android 4.2 and it was up and running in no time. My goal was to set-up a Debian Wheezy (latest stable) which I truly believe is the best options to run a server. Since there were no good image available I had to start a separate project. Result was fast, clean and stable Cubietruck Debian image. Project expanded and image download reach a few thousand downloads within two months.

On the side I made some tests regarding power consumption of the unit on the AC side. 1.7 Watts in standby, 3.3 – 5-5 Watts running with VGA / Net / HDD offline and up to 11 Watts with full system load and (3.5″) HDD running.

Final configuration

I will not write anything because you can see more from the map. The system can be recreated with the script below.

Acrylic case and some upgrade

After months of protoboarding I finally made to design and cut an dedicated case. What’s inside now:

Orange PI plus with 4 x powered USB hub, gigabit LAN, onboard AP

1000BASE FX/TX fiber optic media converter

4 x fast USB chargers

2.8″ TFT display

2 x 3W amplifier with speakers

3T SATA drive

2 x relay with EU/US socket

72W 12V power supply

2 x small PIR-based motion detectors

1 x inside temperature sensor BMP180

1 x illuminance meter

To do: one more ARM board for backup and firewall with battery – Olimex Lime, DHT11 humidity sensor and mount the case to the wall.

Script is made for beginners while configuration part is not. Installation process is interactive and you have to set various things during install – mySQL password, SAMBA user+password+group, choose Apache or NginX, … Setting fixed IP address is recommended before start.

Hi igor
I can’t install ISPConfig with debian wheezy v3.6 / 29.4.2015, Kernel 3.4.107
I think that there is a problem with the configuration of fail2bam.
When your script start to install fail2ban i have a error like this, and your script stop

do you use linux cl softether vpn client? I cannot get it to work for the life of me, though now it works from my mobile. If you wouldn’t mind sharing your sofether configurations, especially client side and concerning securenat/dhcp and router setup i would appreciate it.!

Hi, i am not sure why would you need a vpn clint on such a “server” machine. To my opinion, you would probably need a vpn server or a vpn bridge. What exactlly are you trying to achive? I have a working vpn bridge connection using softether vpn server on a cubietruck, vpn bridge on a remote win7 machine and i can also connect to the server from android phone.

Hi,
after I installed your MicroHomeServer with Samba and ISPConfig on your Debian Jessie 2.9 image (Kernel 3.4.105) for CubieTruck I had a very wrong system date (years in future) and no choice to correct it:

This install – at least Ispconfig – will 100% not work on Jessie or any other Linux distribution. It’s been tailored for Debian Wheezy. Yes, it’s not written clearly – that’s my fault – will add a bold note to the read-me. Why is clock wrong? You need to set it / synchronize at least once. Than it should be o.k.

I liked your project a lot. And i want to suggest you an idea. I prefer ruTorrent to Transmission. Especially autodl and rss support makes ruTorrent a bit useful. May be you consider to add ruTorrent option to your home server script.
Thanks for all.

Yes, they seem almost same but ruTorrent is the best. It is weird you havent try it before. You should also check autodl-irssi it is more advanced version of auto snatch. It would be delicious if your script has a option for ruTorrent.

Thanks Igor!
Installed the home server on my cubox-i based on your Debian SD image.
Installation was running within few minutes. The system is running 24/7 with root fs on 64gb ssd, only consuming 2 watts :-)
Greatings from Germany
Heinz

Hi Igor,
Great work, I am just setting up CBTdebian and waiting for a HDD to make it a nice micro-homeserver.
You seem to have everything nicely oranized, and so I was wondering about some things:
– Do you stream hq movie (files) via samba to laptop via wifi? does that work well? I am thinking to do either samba or simple (and faster) readonly nfs, with sshfs for secure user writeable access
– as fileserver, you have the 3TB hdd hooked up; is that via SATA? how about backup across devices? Something like a cron rsync script from laptop to cubie, and from cubie to a usb-connected backup-disc?
– what do you think the web-traffic max would be for the truck to perform as a webserver at the same time as host server?
– don’t you have security concerns running it as both webserver and private home file server, exposing all your files in case of webserver-compromise?

Thanks for any input, and keep up the great development of CBTdebian if possible!
tnt

Thanks. I have no problems with streaming HD content – for example: 8-12G 1080p MKVs with Samba or up to 1080p H264 IPTV via TVheadend to Laptop / tablet via wireless – TV is wired because I have infrastructure. NFS would be O.K., SSHFS will probably eat a lot of CPU (never tested). Yes, HDD is hooked to single SATA interface. Backup: currently using Bit Torrent sync – aka “user friendly rsync” … working perfect – Android / iOs clients. Security is a broad issue … I am using file server mostly for media/junk files, which are security irrelevant. In case you need a top/higher security, you don’t connect machine to the internet :) I believe Debian + Nginx/Apache + Php webserver is very secure and it’s rarely broken that hard. It’s hard to say what are the limitations for serving WEB. I haven’t done any benchmarking yet.