Homelab

I'm a huge proponent of personal data ownership, and avoiding reliance on public cloud services, which may not have consumers' best interests in mind.

Since 2019, I've slowly been building out my own personal homelab.

Hardware

All of my homelab

Software

Almost all of the following software are hosted via OCI containers. Currently being managed via Docker, but I may eventually switch to Podman instead.

Automation

  • Home Assistant - An all-in-one, self-hosted, privacy-oriented home automation solution.
  • zwave.js - A self-hosted service for managing a Z-Wave network of IoT devices.
  • Gotify - A simple self-hosted service for sending push notifications to mobile devices.

Network Management

  • Unifi Controller - Used to control and manage my home Wifi network and Ubiquiti devices.
  • cloudflare-ddns - A simple script for updating CloudFlare DNS records to ensure that my DNS entries are pointed at my home network.

Media

  • Jellyfin - Media Server for TV shows, movies, etc.
  • Transmission - BitTorrent Client with a web interface/API.
  • Sonarr - Internet-based PVR. Used to automate fetching TV shows with Transmission. Notifications sent to mobile via Gotify.
  • Radarr - Sonarr, but for movies. Notifications sent to mobile via Gotify.
  • Jackett - A Sonarr/Radarr indexer for various BitTorrent trackers.

Data Backup and File Management

  • SMB - Synology comes, by default, with a built in SMB3 server.
  • Gitea - A self-hosted alternative to GitHub. I primarily use it with a cronjob to automatically backup all repos I interact with on GitHub.
  • PostgreSQL - The go-to industry solution for relational databases. Backs much of the other services in this list like Home Assistant, Gitea, and Hastebin.

Personal Apps

  • Vikunja - A self-hosted alternative to Todoist. I use it primarily for personal task management.
  • Hastebin - A simple pastebin alternative for sharing text dumps.
  • I self-host a personal file server, which is publicly readable at https://files.jliu.xyz via SMB with nginx.
  • I've set up ShareX to upload screenshots to https://i.jliu.xyz/ using the same upload path through SMB.

Monitoring

  • Grafana - A dashboarding service that integrates with both Prometheus and Postgre.
  • Prometheus - A time-series database and metrics management solution. Integrates with almost all of my other containers for monitoring their long term state.

DNS

TODO: Complete this section