🇵🇱 Przejdź do polskiej wersji tego wpisu / Go to polish version of this post
I have already discussed how to easily and relatively inexpensively set up a home server based on platforms such as Raspberry Pi. However, there are also other, slightly more ambitious solutions. An example of this is a home server built on devices that, due to their specific nature, I like to call terminals. Such devices include Intel NUC. Of course, such a NUC in a sensible configuration will cost quite a bit, especially compared to Raspberry Pi. However, there is a way out to not ruin your wallet! This is to buy used or refurbished hardware. There are many companies that offer this type of equipment, even providing a warranty of up to 6 months. Many interesting offers can be found, for example, on Allegro (info for non-Poles: Allegro is our polish equivalent to Amazon, eBay etc.).
Terminal vs Raspberry Pi
I decided to visually present the advantages and disadvantages of terminals compared to the previously described Raspberry Pi.
- More powerful processors
- x86 architecture processors (not just ARM)
- Processor mounted in a normal socket, e.g. LGA 1150, rather than soldered onto the motherboard, allowing for replacement
- More RAM (even solutions with 16GB are reasonable in terms of price)
- Compact case with integrated cooling and space for drives
- More advanced virtualization is possible
- Price, especially for a reasonable specification
- One should rather aim for used equipment, not to go bankrupt
- Higher energy consumption
- Working culture – active cooling (fan)
- Larger size
As you can see, this solution has its advantages, but it also has disadvantages. However, if someone wants to seriously get into self-hosting, I think it will still end up with buying a terminal.
Due to the price-to-quality ratio, Dell Wyse 5070 is very popular. If we focus on budget optimization, I definitely recommend considering this option. However, in my opinion, 8GB of RAM is too little. If I had to define my minimum parameters, which we start talking about really cool hardware, they would be:
- 4-core x86 architecture processor,
- 16GB RAM,
- 512GB SSD disk,
- 1 Gbps standard Ethernet (RJ45) port.
This is the minimum that will allow you to run quite decent 4 virtual machines (of course, this is just an example, as resources can be divided as desired), each of which will get one dedicated core and 4GB of RAM. It will be a similar experience to owning four Raspberry Pi 4Bs, and the price won’t be that crazy, which I’ll show you in a moment.
Study on my example
As an example, I’ll use what I bought some time ago. I bought my terminal as an one from shop exhibition on Allegro (a Polish e-commerce platform). If anyone is interested, for convenience, I prepared a link to Allegro with the appropriate search filters, which can be a good starting point for your search. There are also computers of much larger size (the size of a normal PC) than the solutions we are talking about here, because they meet the hardware requirements specified in the search filters, and cannot be filtered out in any way in terms of size or even type, so unfortunately, you, dear Reader, will have to do that part of the job yourself. By the way, this is not an affiliate link, so I don’t have any benefits from pasting it here.
Returning to the subject, the terminal that I bought is the Fujitsu Q920 equipped with a 4-core Intel i5-4590T processor, which is an aging but still respected 4th generation processor, with a clock speed of 2.0GHz (max. 3.0 GHz) and 16GB of RAM (which was probably the most important thing for me). I paid around 630 PLN (~$150) for it, but that was some time ago, so prices may be slightly different now, but the order of magnitude should remain the same, and that’s already a valuable piece of information. I also had to buy a 512GB SSD drive in the standard 2.5″ size (I decided that was enough for me). It’s worth noting that I decided to pay a little extra for an SLC drive, which is known for its greater durability and is a dedicated solution for server applications. SLC drives are also associated with slightly higher prices, but current memory prices are so low that I easily managed to fit this drive into the budget of 200 PLN (~$50).
In my opinion, the best operating system to install on such a terminal is Proxmox. It is a free virtualization environment with open-source code, based on the Debian system. In one of my previous posts, I wrote about Docker. Proxmox is a more advanced Docker, which allows you to run not just containers with services, but full-fledged operating systems. It’s more like running multiple Raspberry Pi boards in one terminal. Proxmox also has its own requirements that you need to pay attention to when buying a terminal, the main ones being:
- 64-bit processor architecture,
- Support for virtualization (Intel processors – Intel-VT, and for AMD – AMD-V)
The installation is extremely easy and analogous to the one I described in the post about setting up a home server based on the Raspberry Pi platform and similar. In short, we download the Proxmox image from the creators’ website and upload it to a pendrive using the balenaEtcher program, creating a bootable USB which we then plug into the terminal and start it up. Here the situation looks a bit different because we cannot perform a so-called headless setup like we did with the RPi. We will need at least a monitor and keyboard. The installation of Proxmox is quite simple, but I will go through the whole process briefly.
- Welcome screen where we select Install Proxmox VE.
- Acceptance of the license.
- Selecting the disk on which to install.
- Choosing a location (country/city) and time zone.
- Setting the administrator password and the email address to receive all important messages related to our server.
- Network settings – this will look different for everyone. First, we select the network card to be used (important, if our server has more than one card, I don’t need to say that it is recommended to connect the server directly to our router via LAN and select the network card corresponding to the cable interface, not the one responsible for wireless communication). Then it is quite important to set the appropriate Hostname, which will be the identifier of our server on the local network. Later, we just need to check if the automatically provided IP address on the local network, gateway, and DNS server, which handles our network traffic, have been indicated correctly. Proxmox always tries to determine default values on its own, which should be corrected if necessary.
- Summary screen of everything we have set up. It is worth checking everything again and if it is OK, start the installation.
- Unfortunately, we have to be patient because the process is not instantaneous. It also depends a lot on the power of our device and, for example, the speed of the disk.
- After the installation is completed (if we did not uncheck this option), the device should restart by itself.
- A properly started server should display the following message on the monitor:
Welcome to the Proxmox Virtual Environment. Please use your web browser to configure this server – connect to:
https://[server IP address]:8006/
According to the message, you just need to copy the given address and use another computer to enter the Proxmox management panel. At this point, you can also disconnect the monitor and keyboard from the server as they will no longer be needed. Additionally, there is no need to worry about browser warnings that will likely appear after accessing the given address. This is because we are using an HTTPS connection and our server does not have an SSL certificate, so the browser will report that something is wrong and warn us with a large message. The server management panel will only be accessible from the local network, so there is no need to mess with any certificates, and any messages of this kind should be clicked through with buttons saying I understand the risks and wish to proceed or something similar.
To be continued…
Unfortunately, this post has started to become uncomfortably long, and I still have a lot of information to share, so at this point, I will stop and invite you to the next post where I will describe how to start the first virtual machine in a freshly installed Proxmox environment.
Pingback: Terminal z Proxmox – ambitny serwer domowy – Tomasz Dunia Blog
Pingback: Terminal with Proxmox – creating VM [ENG 🇬🇧] – Tomasz Dunia Blog