My self hosting journey in 2023

📆 · ⏳ 7 min read · ·

Introduction

Since this year in January I started my homelab journey, I have been trying to self host some services which are helpful for me in my day to day life and I am really happy with the results.

Today I want to share the list of services that I am self hosting and what I plan to explore in the upcoming year.

My mini homelab

Currently my homelab setup consists of 3 main components viz an old laptop (the first hardware which I used to start my homelab journey), a Raspberry Pi Zero 2W and a Raspberry Pi 5.

I have named these servers based on the characters of Jujutsu Kaisen ↗️ anime. The laptop is named as Sukuna, the Raspberry Pi Zero 2W is named as Suguru and the Raspberry Pi 5 is named as Satoru.

All the servers are running Debian 64-bit Operating System.

About Sukuna

Sukuna being the first server I started with, it has the most services running on it. Most of the services running on Sukuna are running in Docker containers.

Services on Sukuna

  • Docker ↗️ - Platform to run containers.
  • Jellyfin ↗️ with *arr suite - Media server to stream movies and TV shows. I have a handy docker-compose file if you want to try it out.
  • NextCloud ↗️ - Cloud storage to store my personal files.
  • FileBrowser ↗️ - While NextCloud is great for storing files, I tend to use FileBrowser for quick file transfers and viewing some files on the go.
  • Syncthing ↗️ - File syncing service to sync files between my mobile and server. So basically I backup my entire phone on this server.
  • Tailscale ↗️ - VPN to access my homelab from anywhere.
  • Node Exporter ↗️ - Prometheus exporter to monitor the server stats.

Mostly I started with the media services to stream movies and TV shows that were sitting on my harddrive from a long time and I never really got the time to watch them.

Since I started using Jellyfin, I have to say that its nice to finally watch those amazing movies that I have been missing out on. Plus Jellyfin is really easy to setup and use so I would highly recommend it.

About Suguru

Suguru was born when I had to decommission an old phone that I was running LineageOS ↗️ on. I decided to use the phone as a server and it was running Linux Deploy on it, however the phone was really old and the performance was starting to cause some troubles.

So when I saw Raspberry Pi Zero 2W available for sale, I decided to buy it and use it as a replacement for the phone and it has been working great so far.

Since Raspberry Pi Zero 2W is a low powered device, I have to be careful about what services I run on it. Currently I am running the following services on it.

Services on Suguru

  • Adguard Home ↗️ - DNS server to block ads and trackers. I was using Pi-hole ↗️ before and then I switched to Adguard Home to try it out and I just stayed with it.

    I did not notice any major difference between the two, however I like the UI of Adguard Home more than Pi-hole.

  • Nginx ↗️ - Reverse proxy to access all the services without having to remember the port numbers.

    I use Adguard Home DNS rewrites to map the domain names to the services running on each of these servers. Doing so I can access Jellyfin on Sukuna by going to jellyfin.sukuna.local and Adguard Home on Suguru by going to adguard.suguru.local.

  • Syncthing ↗️ - I have Syncthing installed on Suguru as well to sync some specific backup folders from my phone and bring them to Suguru.

    Here I have some script running which backs up these folders to Cloud using rclone.

  • Tailscale ↗️ - I have Tailscale installed on Suguru as well.

  • Node Exporter ↗️ - Prometheus exporter to monitor the server stats.

Apart from these services, I am running whole bunch of small scripts on Suguru which I use to automate some tasks. I will be writing a separate blog on that soon but these include scripts for backups, syncing configs between Adguard instances etc.

About Satoru

Satoru is the latest addition to my homelab — a Raspberry Pi 5 8GB. I got it recently and I am still exploring what all I can do with it.

Currently I am running the following services on it.

Services on Satoru

  • Podman ↗️ - Platform to run containers. This time I decided to try out Podman instead of Docker and I am really liking it so far.

  • Prometheus ↗️ - Monitoring service to monitor all the services running on my homelab. It captures metrics from all of the servers and stores them in a time series database.

  • Grafana ↗️ - Visualization service to visualize the metrics captured by Prometheus.

  • Node Exporter ↗️ - Prometheus exporter to monitor the server stats.

  • Tailscale ↗️ - Once again, I have Tailscale installed on Satoru as well.

  • Adguard Home ↗️ - I have another instance of Adguard Home (secondary) running on Satoru as well. I use this solely for redudancy purposes and sync the config between the two instances using adguardhome-sync ↗️.

  • Linkding ↗️ - A bookmarking service to store all my bookmarks. I have been using Bookmarks on Firefox for a long time but I wanted to try out something new and Linkding is really nice.

    I have imported all my existing bookmarks to Linkding and I am using it as my primary bookmarking service now. This is a very new addition but I am loving it so far and no complaints for the features that it provides.

    I wrote a specific blog about this in detail if you are interested in knowing more about it. Linkding: Self Hosted Bookmark Manager

This covers all the services that I am currently running on my homelab. I learned a lot while setting up these services and I am grateful for the amazing community that is out there to help me out when I got stuck anywhere.

What’s next?

There are couple of more services that I plan to explore in the upcoming year. I have been tracking the list of those on my Github Stars list ↗️ as well.

But one major thing that I want to explore is building NAS (Network Attached Storage) for my homelab.

I want to start with a simple setup and then slowly expand it as I learn more about it. I am still exploring the options for the hardware and the software that I want to use for this. If you have any suggestions, please let me know.

Once I have a NAS setup, I plan to move all my media files to it and then use Jellyfin to stream them from there. This will help me free up some space on my laptop and I can use it for other things.

With NAS I also plan to store all my backups and container volumes on it so that I can easily move them around if I ever have to change the hardware and free up some spaces on my servers.

I am very excited to explore this space in the upcoming year and I will be jotting down my learnings in the form of blogs so stay tuned for that.

Conclusion

Overall I have enjoyed my homelab and self hosting journey in 2023 and I am looking forward to explore more in the upcoming year(s).

I hope you enjoyed reading this blog and if you have any suggestions or feedback, please reach out to me on Twitter / x.com ↗️ or any other social media platforms 😊.

Until next time 👋🏽, Happy Homelabbing!

You may also like

  • Setup Jellyfin with Hardware Acceleration on Orange Pi 5 (Rockchip RK3558)

    Recently I moved my Jellyfin to an Orange Pi 5 Plus server. The Orange Pi 5 has a Rockchip RK3558 SoC with integrated ARM Mali-G610. This guide will show you how to set up Jellyfin with hardware acceleration on the Orange Pi 5.

  • Jellyfin + arr stack — Self-hosted media streaming in my Homelab

    Since ages, I have been collecting lots of movies, TV shows, and music. Ever since I got into self hosting, I have been looking for a way to stream my media collection to my devices. Jellyfin is the perfect solution for this.

  • Syncing made easy with Syncthing

    Syncthing is one of those tools which have made my life easier. It is a decentralized file synchronization tool which is open source and free to use. Learn how to set it up and use it.