Skip to content

danilupion/homelab

Repository files navigation

Homelab

A collection of k8s stacks to run a homelab.

Installation

Single Node K8S Cluster

On the server run the following file to install a single node k8s cluster. It has been tested on Ubuntu 22.04

install-k8s-cluster.sh

Versions

  • k8s: 1.29.2-1.1

Homelab

Once k8s credentials are available use them (.kube config file) make a copy of values-template.yaml and update the file with proper values.

Note: bash 4.0 or higher is required to run the following commands.

cp values-template.yaml values.yaml

And run the following file to install the homelab.

install-homelab.sh

Versions

Update (configuration)

After you have made changes in the configuration (charts or values.yaml) you can run the following file to update the homelab.

update-homelab.sh

Helm Charts

Networking

metallb-config (single node ip pool)

custom-dns (based on CoreDNS)

Certificates

cert-manager-letsencrypt-cloudflare (Cluster issuer for Let's Encrypt with DNS-01 challenge using Cloudflare)

Security

wireguard (based on WireGuard)

Media Indexing

prowlarr (based on Prowlarr)

nzbhydra2 (based on NZBHydra2)

Media Downloading

transmission (based on Transmission)

sabnzbd (based on SABnzbd)

You probably want to have a look at this https://sabnzbd.org/wiki/extra/hostname-check.html

Media Management

radarr (based on Radarr)

sonarr (based on Sonarr)

bazarr (based on Bazarr)

lidarr (based on Lidarr)

readarr (based on Readarr)

calibre (based on Calibre)

calibre-web (based on Calibre-Web)

jellyseerr (based on Jellyseerr)

overseerr (based on Overseerr)

Media Streaming

jellyfin (based on Jellyfin)

plex (based on Plex Media Server)

For native apps in the same network you will need to set Settings -> Network -> Custom server access URLs to something like https://plex.yourdomain.tld

emby (based on Emby)

Tools

homarr (based on Homarr)

fileflows (based on FileFlows)

home-assistant (based on Home Assistant)

The following will be needed in the configuration.yaml file for Home Assistant to work with the ingress-nginx (more info):

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 10.0.0.0/8 # Cilium's default CIDR

Probably you also want to install hacs (Home Assistant Community Store) to get more integrations and plugins. https://hacs.xyz/

Dev

renovate (based on Renovate)

Observability

Includes Prometheus, Grafana, Alertmanager, and kube-state-metrics