In recent years I’ve tried many different solutions to come up with the perfect server. Finally I can say I’m pleased with the result!
I bought my first Network-attached storage (NAS), a Synology DS410, back in 2011 . At that time I thought I had found the perfect server. Not even was is really simple to configure, but it also had a whole lot of apps making it easy to install all the software I needed.
I was really happy with the solution, but the limited performance and application support (this particular model has an ARM processor) slowly became annoying. I’ve switched between OpenMediaVault, Ubuntu Server, FreeNAS and Windows Server without ever being truly satisfied.
Then one day I gave the free version of ESXi a try and I was amazed by how simple it was to install, configure and virtualize just about everything.
My current hardware isn’t special at all.
In fact, I’m not even using server grade hardware at the moment:
ASRock Z68 Extreme7 GEN3 Motherboard
Intel Core i7-3770 Processor
Corsair Vengeance 16GB 1600MHz DDR3 DIMM 240-pin
SAS 9201-16i Host Bus Adapter
Western Digital Red NAS Hard Drive 3TB
Corsair H60 High Performance Liquid CPU Cooler
Corsair TX750M High Performance Modular Power Supply
I’m currently running the latest and greatest version of ESXi which can be downloaded for free from VMware. Since it’s a bare-metal hypervisor it’s small enough to fit on a 32GB USB thumb drive, allowing me to allocate almost all resources to virtual machines. I was also considering the free version of Hyper-V, but Vmware ESXi is simpler, has more features and supports even virtualizing Android or Mac OS X.
My server consist of the following virtual machines:
Perhaps the most obvious task a server should be able to handle is to be a file server. Even though most operating systems allow you to share files and folders, it’s doesn’t necessarily mean they do a good job as a file server.
I am perhaps a bit spoiled since I come from a Synology NAS, but I didn’t want to settle with anything less. The solution I was looking for should provide a graphical interfaces making it easy to configure, support raid 6 and make it easy to expand the storage space and similar to Synology DSM support multiple users. I also wanted to be able to manage my files from anywhere and be able to share them with the click of a button.
The solution? Run Synology DSM virtualized thanks to the awesome project XPenology! Performance and processor architecture isn’t a problem anymore and the system makes configuration as simple as it gets.
I’ve been running XPenology for quite some time now without any issues, but since it’s not official supported I started looking for a proper backup solution. After 5 minutes of googling I decided me give CrashPlan a try. Considering the features, CrashPlan sounded like an awesome deal with unlimited storage, 448-bit file encryption and minute-by-minute backups. Even though upload speed might be a bit slow and the client isn’t official supported on Synology, it wasn’t hard to install and you’ll be notified once there might be something wrong. I love it and it has already saved my life multiple times.
Now for the fun stuff. At home I use Kodi to watch movies and tv shows and I’m really happy with how it works. The only issue with Kodi is that it doesn’t support streaming or transcoding and that’s where Plex comes in.
I use Plex in order to be able to share and access all my media from outside my network. Even though XPenology supports Plex officially, I highly recommend to install it separately on a it’s own virtual machine. The two main reasons are performance and the lack of regular updates. Ubuntu server running Plex just does a better job then XPenology.
If you’re interested in statistics I also recommend to take a look at PlexWatch.
Before I finished configuring my own server I rented a virtual private server (VPS) from Linode. I’ve never had any issues with it, but considering the cost and the amount of traffic (or the lack thereof), I moved all of my sites to my own server.
Now I’m running a virtual machine only dedicated to Apache and other web related services. This blog if of cause only one of the sites I host on the server.
When I’m not blogging I’m usual writing code. In order to manage my source code I’ve configured a virtual machine with GitLab running on Ubuntu server.
Do you have any questions or suggestions?
What do you consider the perfect server configuration?