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:
- 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)
- 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)
- 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!