Git Product home page Git Product logo

homelab's Introduction

Homelab

This repo contains definitions for a k3s-based kubernetes (atm-single node) cluster that uses argocd and GitOps principles to deploy the applications running in the cluster.

three choices to install

three choices to install

pre-requisits

  • either a dedicated "server", a vm (debian 11) or just minikube
  • hardware wise it requires 8GB of ram to run the entire stack ( without load ), recommended 16GB+
  • a github account to store your configs/secrets
  • some apps require an email to send with, such as authelia and nextcloud.

install

https://enso.internetz.me

features

  • made with love
  • uses kubernetes (k3s) and containers
  • supports full disk encryption ( debian/cryptsetup )
  • automated updates via homelab-updater
  • uses a mix of go/terraform/bash to create the cluster
  • ships with a ./setup helper ( written in go )
  • modular architecture, easy to add or remove features/components ( PRs welcome )
  • bootstraps hypervisor ( proxmox ), with templates ( debian ) and kvms ( k3s )
  • follows gitops principles
  • automated certificate management with cert-manager
  • automated ip management with external-dns
  • supports external storage ( iscsi/nfs ) such as truenas provides via democratic-csi
  • if no external storage provided it configures nfs server/provisioner for ReadWriteMany
  • ingress via nginx or cloudflare tunnels
  • contineous delivery with argocd
  • log solution with grafana's loki
  • secrets encrypted with sealed secrets
  • backups & disaster recovery with kasten k10
  • uses this repo as upstream to receive updates
  • replaces the need for a cloud
  • two factor / SSO with authelia
  • covers your media needs with jellyfin/jellyseer/prowlarr/radarr/sonarr/nzbget/rtorrent
  • documentation with obsidian ( ./docs ) or online

installation & docs

docs are written in obsidian markdown inside the docs folder, an online version can be found here

here

you can also access it via github

The stack from bottom to top

These are all the apps that are part of this repo and can be installed via the ./setup util. It can either be installed in baremetal debian, in proxmox ( setup converts debian to proxmox & creates templates/kvms ). This allows intalling debian with FullDiskEncryption :luc_lock: easily with the debian installer.

Name Type Description Optional
Proxmox Operating System Allows running KVMs, ships with Webui yes
Debian 11 Template Template for Proxmox KVMs yes
KVM Virtual Machine A virtual machine ( KVM ) in Proxmox yes
k3s Kubernetes Distribution For self hosting Kubernetes yes
Minikube Kubernetes Distribution Alternative to Baremetal/Proxmox yes
Argocd Kubernetes Application Declarative Githubs CD no
Bootstrap Core apps Argocd App of Apps Used to load required Kubernetes Applications no
Bootstrap Optional apps Argocd App of Apps Used to load required Kubernetes Applications no
Sealed Secrets Kubernetes Application Encryption of all application credentials no
Cert Manager Kubernetes Application X.509 certificate controller ( letsencrypt ) yes
Import Sealed Secrets Kubernetes Application a helm chart to import stored sealed secrets yes
Authelia Kubernetes Application SingleSignOn Multi-Factor portal yes
Cloudflare Tunnels Ingress Alternative ingress using cloudflare tunnels yes
Democractic CSI Kubernetes Application Storage class for iscsi/nfs works with truenas yes
External DNS Kubernetes Application For updating DNS records such as cloudflare yes
Home Assistant Kubernetes Application Open source home automation. Privacy focussed yes
Jellyfin Kubernetes Application Software for streaming videos yes
Jellyseerr Kubernetes Application Portal for managing download requests yes
Kasten K10 Kubernetes Application Backup & Restore, DR and offsite - backblaze b2 yes
Loki Kubernetes Application Grafana & Loki, loads dashboards for linkerd yes
Nextcloud Kubernetes Application Self hosted Dropbox, apps for ios/android yes
NFS Provisioner Kubernetes Application NFS provisioner for local-path for shared-media yes
NGINX Ingress Ingress Main recommended Ingress controller yes
Nzbget Kubernetes Application Usenet Downloader yes
Prowlarr Kubernetes Application Indexer for Usenet/Torrent Trackers yes
Radarr Kubernetes Application Movie Collection Manager for Usenet/Torrents yes
Sonarr Kubernetes Application TV Collection Manager for Usenet/Torrents yes
Vaultwarden Kubernetes Application Rust based bitwarden, Password Manager yes
Volume Snapshots Helm Chart Adds snapshot support for democratic-csi yes
Whoami Kubernetes Application a simple go app to display http requests/headers yes

homelab's People

Contributors

loeken avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.