My home server

My home server

A month ago, my interns were sharing about their applications running on their home servers which got me really interested and decided to get one from an online marketplace. At first, I thought having in the cloud would be more convenient, but turns out that self-hosting is much more customisable and less costly for personal use!

I bought a Lenovo ThinkCentre M710q with Intel i7-8700 CPU, 64GB RAM, 512GB NVMe SSD and comes with a PCIe x16 slot. Suitable for running virtual machines. 😎

My hosted applications

Here is a list of applications that I'm running:

Application Usage
OpenVPN Prefer having my hosted apps to be accessed through private network, as apps may contain vulnerabilities
ddclient (through Docker) As my ISP assigns a dynamic IP address to my home network, ddclient constantly updates my DNS A record on the domain provider
Rclone Backup my file storage containing photos and app configuration files to Google Drive weekly
File Browser (through Docker) Web app to access my files while outside

I've also published my installation scripts on Github if you need them!

Other interesting applications

You may also refer to Awesome-Selfhosted for more ideas!

Application Usage
Jellyfin Media server to stream your videos/music and watch on the web/android/iOS phone
Transmission Torrent client
code-server Web version of Visual Studio Code
Samba Share files using network share (SMB protocol)
Bitwarden Password manager
Gaming servers Minecraft, Counter-Strike, etc.

Why use Docker?

If you notice, some of the applications I'm using are running through Docker. After hearing from my friends, here are some reasons why:

  1. Easy to install/teardown (Especially for apps like WordPress that takes 10 minutes to setup and you have to reinstall from scratch because of screwing up some app files)
  2. Applications that may have different dependency versions (can't really give an example, but imagine one app requiring Java 19 and another app requiring Java 21)
  3. Storage Isolation (Restrict your application to only a directory of your filesystem)

I also recommend using Docker Compose instead of Docker.
Here's a comparison when running multiple containers* between Docker and Compose, where the latter is much organised.

*Each application runs under a single container, hence the term container

Hope this gives you a better idea if you are planning to get a home server!