Setting up my first home server

In recent months, I have been learning more about the hardware and infrastructural aspects of computing as someone who works in software and products. I believe that having a solid grasp of general computing is a useful skill set to have in my area of work, even if it doesn't directly affect my day-to-day.

I determined that building a server for my house on a tight budget would be a decent starting point.

My initial idea was to create a Pi-hole server using a Raspberry Pi Zero 2 W. Technically speaking, this worked, but it was sluggish, unwieldy, and unable to support many additional services. I didn't think it made much sense to have a whole machine—even a Pi Zero—for a single service.

I then took a look at an old HP G5 250 laptop with an i5 inside that was damaged and lying around. The battery died, the second replacement battery died, and the hard disk died, so I hadn't used it for years. It didn't appear to be very healthy. It would be the ideal low-energy server to run several services on, though, if I could get it up and running. So I started working on fixing it!

Repairing the laptop
Changing the hard disk
Fortunately for me, I had an Acer V5 (I apologize, I live in a tech graveyard and can't bring myself to throw away) and another dead laptop nearby. I successfully removed the outdated 2.5" SATA drive from the Acer and installed it in the HP. In the end, this added a new use case to my server build. I backed up a number of old movies I discovered on the drive and want to include in my server build (more on this later!).


Using Ubuntu in Place of Windows
This will be a contentious opinion. Windows 8 was installed on the HDD I inserted into the HP. I could have retained version 8 of Windows or updated it, but I needed a lightweight operating system on a laptop with outdated technology and a 750GB hard disk. Particularly when a single hard drive serves as both an OS boot and storage. I therefore made the decision to use Linux. Since I had never used Linux before, Ubuntu seemed like a nice option for beginners.

The procedure was easy. I downloaded the Ubuntu ISO file, used Rufus to flash it to a USB drive, inserted the USB drive into the laptop, booted the computer into BIOS, and installed the operating system.



If I was going with Ubuntu for a server anyhow, the tech-savvy among you might be wondering why I chose Ubuntu Desktop over Ubuntu Server. The short answer is that I wanted a GUI for setup and maintenance ease because this is my first time. One of my teachers in software engineering taught me a useful acronym that I frequently repeat to myself: KISS. Stupid, keep things simple.

Getting rid of the battery completely
This is a bit of a gamble, but I couldn't afford to replace the battery with an original HP one for this design. I had previously purchased a cheap third-party battery, and it died like a lead balloon. I continued using electricity from the wall since I wanted to make use of what I already had and because I intend to keep this server running around-the-clock anyhow.

Configuring the server
I discovered the Zima Board and its graphical user interface (GUI), CasaOS, while exploring small server configurations. CasaOS is an open-source program that runs smoothly on Linux.

Casa is the ideal introduction to server administration for newcomers. I installed Casa in the terminal after configuring my laptop for continuous power (aside: Compared to Windows, Linux's terminal and its operations are incredibly simple).

I initially had some difficulties because Casa's installation is meant to inform you of the IP address you can use to access it at the conclusion. For some reason, I never saw this in the console, but fortunately, I was able to locate the IP address in the event log of my router.

I just needed to decide which apps to download and look up others now that Casa was set up and operating on my computer. In essence, Casa is a Docker container visualization. I've worked with Docker in the past, and I really like how lightweight and easy it is to use for running services. Casa makes things even simpler.


I really like Casa's dashboard's simplicity and ease of use for beginners. Additionally, I can access the dashboard—and thus, all of the server's services—from any internet-connected device in my house because it is hosted on a separate IP address. After the system was configured, I completed the remaining steps from the comfort of my sofa by accessing the IP on my smart TV!


Which services I'm sprinting.
  • A network-wide ad blocker is called Pi-hole.
  • With Jellyfin, you may enjoy your own media files in a manner similar to that of Netflix. For the ancient film files I stored on my hard drive, this has completely changed the game. I'm thrilled that this service allows me to use this system as a media server.
  • To torrent files, use qBittorent.
  • Wireguard is a VPN protocol, however I need to try it again because I've had issues configuring it.
 
Upcoming enhancements
  • Without a doubt, change or locate a substitute for Wireguard.
  • I can't decide whether to acquire a separate NAS for storage or expand the storage on this device.
  • learning more about the Docker universe. Although Casa includes a number of "apps" that make it simple for you to set up Docker containers, you can also perform custom installations of any Docker service.
  • I would adore using the server to host a website.
Hi There, I'm Yahya, and I enjoy sharing knowledge and experiences.