maxenceng / home-lab

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Home Lab

Project based on k3s to host various apps to manage tv shows and movies.

Applications

Homepage: Application dashboard

Prowlarr: Torrent indexer

Flaresolverr: Bypass Cloudflare and DDoS-GUARD protection. Solely used by Prowlarr

Sonarr: Queues TV shows requests and processes them when completed

Radarr: Same as Sonarr but for movies

Transmission: Torrent downloader

Jellyfin: Library manager and media system for your video files

Jellyseerr: Displays popular movies and tv shows you can request

ArgoCD: Deploys applications easily and with a GUI

How to use

Prerequisites

GPU Usage

If you have an Nvidia GPU, use task install-nvidia after task prepare If you don't have an Nvidia GPU, comment the resources lines in lab/jellyfin/values.yaml)

Commands

On your remote server, you have to use

sudo ./setup/server.sh

This will start the server and create a folder to contain our resources. You can export the configuration with this command :

scp user@192.168.1.1:/etc/rancher/k3s/k3s.yaml ~/.kube/config
sed -i 's/127\.0\.0\.1/192\.168\.1\.1/g' ~/.kube/config

Change these two lines with whatever ip address your private server uses.

On your current computer, you can now access your cluster with kubectl get pods -A

You can follow the changes that will be made with one of these : OpenLens or k9s

You can now use the next shell script that will initiate everything for your cluster

task setup

You have to change the samples for the 2 secrets we need and use

task set-secrets

You can prepare the cluster for applications with

task prepare

After that, use

task create-apps

After a few seconds, everything will be deployed and available ! To configure your application, you have to set up internal urls as [application]:[service-port]. You can access your applications at https://[application].[tailscale-dns]

Stop & Teardown

In order to stop the applications, you can use ArgoCD's GUI to uninstall applications.

If you want to destroy everything, you have to use setup/teardown.sh

Resources

Helm Simplifies common configurations

Gluetun: VPN container to use transmission over VPN

Tailscale: Private WireGuard with DNS resolution

PostgreSQL: SQL Database

⚠️ Cloudflare Tunnel doesn't allow video streaming, so I opted out of it in favor of Tailscale

About


Languages

Language:Shell 100.0%