# Creating my first home server

Link: [https://medium.com/@tararhoseyn/creating-my-first-home-server-2104cc610514](https://medium.com/@tararhoseyn/creating-my-first-home-server-2104cc610514)

<div class="ab cb" id="bkmrk-as-someone-who-works" style="text-align: justify;"><div class="ci bh ev ew ex ey"><div><div><div class="speechify-ignore ab cp"><div class="speechify-ignore bh l"><div class="gr gs gt gu gv ab"><div class="bn bh l"><div class="l hp"><div class="ab cn hq hr hs"><div class="ab ae"><mark class="ys yt ao">As someone who works in software and product, I’ve been learning more about the hardware/infrastructure side of computing in recent months. Even if the knowledge doesn’t </mark><mark class="ys yt ao">*directly* </mark><mark class="ys yt ao">impact my day-to-day, I think having a decent understanding of general computing is a helpful skill set to have in my line of work.</mark></div></div></div></div></div></div></div></div></div></div></div>I decided that a good place to explore would be to try to make a budget-friendly server for my home.

My first thought was to use a Raspberry Pi Zero 2 W as a Pi-hole server. This did technically work, but it was slow, clunky, and couldn’t really run any other services. It didn’t make a lot of sense to me to have an entire machine (even one as small as a Pi Zero) for just one service.

I then looked at a broken laptop I had laying around, an old HP notebook g5 250 with an i5 inside. I hadn’t used it in years for a couple of reasons: the battery died, the second replacement battery died and the hard drive died. It wasn’t looking too healthy. But if I could get it up and running, it would be a perfect low-energy server to run multiple services on. So I set about to fix it!

# Fixing the laptop

## **Replacing the hard drive**

Luckily for me, I had another dead laptop around, an Acer V5 (I live in a graveyard of tech I can’t bring myself to throw away, I’m sorry). I managed to pull the old 2.5" SATA drive out of the Acer and popped it into the HP. This ended up bringing another use case into my server build… I found a bunch of old films on the drive, backed them up, and will use them in my server build (more on this later!)

<div class="oa" id="bkmrk-" style="text-align: justify;"><div class="ab cb"><div class="kk ob kl oc km od cf oe cg of ci bh"><div class="og oh oi oj ok ab jb"></div></div></div></div>## **Replacing Windows with Ubuntu**

This is going to be a controversial take… The drive I popped into the HP had Windows 8. Now, I could have updated the Windows operating system (OS) or kept version 8, but I wanted a lightweight OS for a laptop that had aging hardware and only a 750GB hard drive. Especially as one hard drive is used as both storage and as an OS boot. So I decided to go down the Linux route. I chose Ubuntu as it seemed like a good beginner's choice as I’ve not used Linux before.

It was a simple process. I downloaded the ISO file for [Ubuntu](https://ubuntu.com/download/desktop), flashed it to a USB drive using [Rufus](https://rufus.ie/en/), popped the USB drive into the laptop, booted into BIOS on the laptop, and installed the OS.

<div class="ab cb" id="bkmrk--1" style="text-align: justify;"></div>The techy folks among you may wonder why I went for Ubuntu Desktop over Ubuntu Server if I was going down the Ubuntu route for a server anyway. The simple answer is that this is my first rodeo, and I wanted a GUI for ease of setup and maintenance. I once learnt a valuable acronym from one of my software engineering lecturers and often repeat it to myself: KISS. Keep it simple, stupid.

## **Scrapping the battery altogether**

This is a bit of a risky move, but replacing the battery with an official HP one (I previously bought a cheap third-party battery, and it went down like a lead balloon) was out of my budget for this build. I wanted to use what I already had, and I plan to keep this server running 24/7 anyway so I just kept using power from the wall.

# Setting up the server

When I was researching small server setups, I came across a product called a Zima Board and its GUI system, [CasaOS](https://casaos.io/), an open-source software that can easily run on Linux.

Casa is the perfect beginner’s introduction to server management. After getting my laptop’s configuration set up for 24/7 power, I installed Casa in the terminal (Side note: The ease of the terminal and its commands in Linux is super impressive compared to Windows).

I had a bit of trouble at first as the installation of Casa is supposed to let you know at the end what IP address you can use to access it. This never came up for me in the terminal for some reason, but luckily I ended up finding the IP in my router’s event log.

Now Casa was installed and running on my system, all I had to do was pick which apps to download and research others. Casa is basically a visualization of Docker containers. I’ve had some basic experience with Docker before, and I love how lightweight and simple it is to run services through. Casa makes it even easier.

<div class="ab cb" id="bkmrk-my-server-dashboard" style="text-align: justify;"><div class="ci bh ev ew ex ey"><figure class="og oh oi oj ok oa oz pa paragraph-image"><div class="oq or ed os bh ot" role="button" tabindex="0"><div class="oz pa pi"><picture><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/format:webp/1*wqCeYM8d8XsfFtZYWTdHjw.png 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/1*wqCeYM8d8XsfFtZYWTdHjw.png 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/1*wqCeYM8d8XsfFtZYWTdHjw.png 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/1*wqCeYM8d8XsfFtZYWTdHjw.png 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/1*wqCeYM8d8XsfFtZYWTdHjw.png 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/1*wqCeYM8d8XsfFtZYWTdHjw.png 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/1*wqCeYM8d8XsfFtZYWTdHjw.png 1400w" type="image/webp"><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/1*wqCeYM8d8XsfFtZYWTdHjw.png 640w, https://miro.medium.com/v2/resize:fit:720/1*wqCeYM8d8XsfFtZYWTdHjw.png 720w, https://miro.medium.com/v2/resize:fit:750/1*wqCeYM8d8XsfFtZYWTdHjw.png 750w, https://miro.medium.com/v2/resize:fit:786/1*wqCeYM8d8XsfFtZYWTdHjw.png 786w, https://miro.medium.com/v2/resize:fit:828/1*wqCeYM8d8XsfFtZYWTdHjw.png 828w, https://miro.medium.com/v2/resize:fit:1100/1*wqCeYM8d8XsfFtZYWTdHjw.png 1100w, https://miro.medium.com/v2/resize:fit:1400/1*wqCeYM8d8XsfFtZYWTdHjw.png 1400w">![](https://miro.medium.com/v2/resize:fit:945/1*wqCeYM8d8XsfFtZYWTdHjw.png)</source></source></picture></div></div><figcaption class="ow ox oy oz pa pb pc bf b bg z dx" data-selectable-paragraph="">My server dashboard</figcaption></figure></div></div>I also appreciate how sleek and beginner-friendly the dashboard of Casa is. And because it’s hosted on its own IP, I can access the dashboard (and by extension, all the services running on the server) on any device in my home connected to the internet. Once I set up the system, I accessed the IP on my smart TV and did the rest of the setup from the comfort of my sofa!

<div class="ab cb" id="bkmrk-my-dashboard-server-" style="text-align: justify;"><div class="ci bh ev ew ex ey"><figure class="og oh oi oj ok oa oz pa paragraph-image"><div class="oq or ed os bh ot" role="button" tabindex="0"><div class="oz pa pj"><picture><source sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/format:webp/1*_H9uf_1aGc_J6zrdjwBvHg.jpeg 640w, https://miro.medium.com/v2/resize:fit:720/format:webp/1*_H9uf_1aGc_J6zrdjwBvHg.jpeg 720w, https://miro.medium.com/v2/resize:fit:750/format:webp/1*_H9uf_1aGc_J6zrdjwBvHg.jpeg 750w, https://miro.medium.com/v2/resize:fit:786/format:webp/1*_H9uf_1aGc_J6zrdjwBvHg.jpeg 786w, https://miro.medium.com/v2/resize:fit:828/format:webp/1*_H9uf_1aGc_J6zrdjwBvHg.jpeg 828w, https://miro.medium.com/v2/resize:fit:1100/format:webp/1*_H9uf_1aGc_J6zrdjwBvHg.jpeg 1100w, https://miro.medium.com/v2/resize:fit:1400/format:webp/1*_H9uf_1aGc_J6zrdjwBvHg.jpeg 1400w" type="image/webp"><source data-testid="og" sizes="(min-resolution: 4dppx) and (max-width: 700px) 50vw, (-webkit-min-device-pixel-ratio: 4) and (max-width: 700px) 50vw, (min-resolution: 3dppx) and (max-width: 700px) 67vw, (-webkit-min-device-pixel-ratio: 3) and (max-width: 700px) 65vw, (min-resolution: 2.5dppx) and (max-width: 700px) 80vw, (-webkit-min-device-pixel-ratio: 2.5) and (max-width: 700px) 80vw, (min-resolution: 2dppx) and (max-width: 700px) 100vw, (-webkit-min-device-pixel-ratio: 2) and (max-width: 700px) 100vw, 700px" srcset="https://miro.medium.com/v2/resize:fit:640/1*_H9uf_1aGc_J6zrdjwBvHg.jpeg 640w, https://miro.medium.com/v2/resize:fit:720/1*_H9uf_1aGc_J6zrdjwBvHg.jpeg 720w, https://miro.medium.com/v2/resize:fit:750/1*_H9uf_1aGc_J6zrdjwBvHg.jpeg 750w, https://miro.medium.com/v2/resize:fit:786/1*_H9uf_1aGc_J6zrdjwBvHg.jpeg 786w, https://miro.medium.com/v2/resize:fit:828/1*_H9uf_1aGc_J6zrdjwBvHg.jpeg 828w, https://miro.medium.com/v2/resize:fit:1100/1*_H9uf_1aGc_J6zrdjwBvHg.jpeg 1100w, https://miro.medium.com/v2/resize:fit:1400/1*_H9uf_1aGc_J6zrdjwBvHg.jpeg 1400w">![](https://miro.medium.com/v2/resize:fit:945/1*_H9uf_1aGc_J6zrdjwBvHg.jpeg)</source></source></picture></div></div><figcaption class="ow ox oy oz pa pb pc bf b bg z dx" data-selectable-paragraph="">My dashboard server on my lounge TV</figcaption></figure></div></div>## What services I’m running

<div class="ab cb" id="bkmrk-pi-hole%C2%A0%E2%80%94-a-network-" style="text-align: justify;"><div class="ci bh ev ew ex ey">- **Pi-hole** — a network-wide ad blocker.
- **Jellyfin** — a media player that offers a Netflix-like experience for your own media files. This has been an absolute game-changer for those old film files I had on the hard drive. I’m really pleased I can use this system as a media server through this service.
- **qBittorent** — for torrenting files.
- **Wireguard** — this is a VPN protocol, but I’ve had trouble with its configuration so I need to give this another shot.

</div></div>## Future improvements

<div class="ab cb" id="bkmrk-definitely-reconfigu"><div class="ci bh ev ew ex ey">- Definitely reconfigure/find an alternative to Wireguard.
- I’m stuck between increasing the storage on this device or getting a separate NAS for storage.
- Exploring the world of Docker more. While Casa comes with a bunch of ‘apps’ that easily set up Docker containers for you, you can do custom installs of any Docker services too.
- I’d love to host a website on the server.

</div></div>