The Building Of Iris

Back in 2015, when I transitioned to using a laptop (Venus) as a primary computer, I also transitioned my previous desktop computer (Clementine) to the role of being a file server. I felt it was a better approach to have a computer that was dedicated to being powered on all the time, with software oriented around making my data useful and safe -- media streaming, automatic backups, private cloud, and so on.

Clementine was fine as a first file server, but had three primary drawbacks: 1) Physically, Clementine was a large desktop computer, which limited options for placing her out of the way. 2) Clementine was overpowered for this use case, and leaving her powered on all the time meant a lot of electricity was being wasted. 3) Windows is not a great operating system for servers -- it reboots frequently without warning, and many programs can only run within a user account, not as a system service, so after a reboot it was necessary for me to manually log in so that those programs could start up.

My plan all along was to replace Clementine with a machine more optimized for this purpose, but it took a long time to settle on the right approach. I considered simple hard drive network adapters, dedicated NAS devices such as Synology, and even a completely different approach of utilizing cloud services. In the end, I decided on a custom-built, small PC, running Linux.

Which brings us to Iris. Iris is my first small-form-factor PC, and so I spent a great deal of time picking out parts, and trying to keep things small and power efficient, while also being powerful enough to handle media transcoding. Designing this PC was a unique and new experience for me, despite having built many computers before.

On January 6th, all of the parts had arrived, and the fun of building began!

This is the small In Win case that I picked out. Wanting a small PC, the case was the first thing I looked at, and designed everything else around the case. I knew I wanted to have a case that was as small as possible, while still being able to fit two hard drives. In the end it came down to this case, or several cases that were the same height but more "cube"-like. Since this one fit everything I needed, had good reviews, and was the smallest I could find, this is what I went with.

The case opened up. Not much to note other than it comes with a TFX power supply, which is smaller than a standard ATX power supply, which was one of the keys to making this case so small. It technically can fit an entire optical drive in addition to a hard drive, but my plan all along was to not have an optical drive and instead to use that space for a second hard drive, using a mounting backet. I have a USB Blu-Ray drive that I can use when I need optical media.

The Gigabyte motherboard. This is a Mini-ITX motherboard, which is much smaller than a regular ATX motherboard, but still uses a regular Intel CPU. This motherboard offers more than I need (namely, built-in Wifi, Bluetooth, and USB-C ports), but I feel like that will help ensure this computer can grow with me over the next few years.

The Intel i3-6100 CPU. In past builds, all I cared about was performance, but this time around I cared more about making sure the CPU was capable of what I needed it to do (without going overboard), while being energy efficient and cost-effective. This CPU was a great find. It only cost $120, but has a Passmark benchmark of over 6000. My current high-performance desktop had a score of 8000 (and cost much more). To handle real-time media transcoding, not much more than a score of 2000 is needed, so this CPU was more than enough. And it's energy efficient, as well. After Iris was put together, I measured energy usage to be just about 29W while idle, maxing out at about 65W when under load. That's pretty good for a standard desktop CPU. All in all, I think this CPU was an amazing find when taking performance, energy, and cost in account.

The motherboard, now with CPU and CPU cooler installed. This gives a good perspective on the size of the motherboard -- it's not that much bigger than the CPU cooler!

Now the case with the motherboard/CPU installed. Things are starting to come together!

One nice this about this case is that the bracket the drives mount on is removable, so that you can work with the drives outside of the case, then mount the bracket in the case. That's very helpful since this case is so small -- it would be hard to work with the drives if the bracket was permanently attached to the case. And I found that getting the drives & their cables to fit took a lot of trial and error, so being able to do the trial and error outside of the case made life much easier.

Speaking of drives, here is the 120GB Kingston SSD, for the operating system and applications. I decided on an SSD in order to cut down on noise, energy usage, and mechanical wear-and-tear, with the added benefit that the SSD makes the machine boot & shutdown extremely fast. The fact that it's only for the OS and applications means it didn't need to be big. My plan was to move my 2TB mechanical data drive from Clementine into this computer. Moving the data drive itself means no need to copy or otherwise migrate the data -- it would just be there! Plus, I like having data separate from OS & applications, anyways -- it makes it easier to re-install the operating system if needed, or upgrade the data drive down the road when I run out of space.

All assembled, other than the mechanical data drive (which is still in Clementine while I get this computer set up). This computer booted up just fine the first time, no surpirses at all. Here, I'm installing Ubuntu Linux. I decided on Linux in general because it's a much better operating system for staying up for long periods of time, and allowing a great deal of flexibility for having software start up as system services. I picked Ubuntu specifically because it seems like it has a lot of community attention at the moment, and they provide great Long Term Support releases, which continue to get security patches, low-risk bug fixes, and hardware support updates for 5 years. I really wanted to get this set up and working and then not have to make any significant operating system upgrades for a long time, so an Ubuntu LTS release was perfect for me.

I installed the operating system, without the data drive, so that I had a chance to then install all of the server software I need over the next few days, while Clementine was still working. This helped minimize downtime a great deal. Once all of the software was set up, on January 11th, I shutdown Clementine for the last time, pulled the data drive, and installed it in Iris in order to make the full switchover.

A picture inside the case after the second hard drive was installed. You can't really see it, but that's part of the point -- this case is small, which is great, but it is very tight as a result! It took a lot of trial and error to get all the drives and cables situated just right. But, I got there. As soon as the drive was switched over, I began setting up all of the services over the next few days.

The new, small Iris, next to Clementine. I'm really happy with how Iris turned out. This file server achieved all of my goals, and there were no surprises or hiccups along the way. She's really small, so small that I have lots of options for placing her out of the way. She's energy efficient so I don't have to worry about leaving her powered on all the time. She's extremely quiet. All of my server software starts up with the system, without me needing to log in, so between that and her fast boot times, she almost feels more like an appliance. And Linux is great about not rebooting unexpectedly, so that my files and media are always available when I need them. A great success!