Skip to content

ravilushqa/homelab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

233 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HomeLab Project 🏠💻

This repository represents my HomeLab setup, showcasing an integration of various modern technologies for managing a Kubernetes-based infrastructure. It includes configurations for virtualization, networking, storage, and application deployment.


Core Technologies 🛠️

  • Proxmox Server management and virtualization.
  • Terraform Infrastructure as Code.
  • Talos Linux Kubernetes OS.
  • Cilium Network security and observability.
  • Traefik Edge Router due to its simplicity and TLS passthrough capabilities and my router limitations.
  • Cert-Manager Certificate management.
  • Proxmox CSI Storage provisioning.
  • Sealed Secrets Encrypted secrets management, which is safe to store in Git.
  • Gateway API Next generation of Kubernetes Ingress.
  • Grafana Cloud Monitoring and observability of the cluster.
  • ArgoCD GitOps continuous delivery tool for declarative Kubernetes management.
  • Komodo Docker stack management — deploys compose stacks from the komodo/stacks/ directory.

Applications 📦

Running in Kubernetes (k8s/apps/internal/)

Running on Proxmox, routed via Kubernetes (k8s/apps/external/)

Docker Stacks — Komodo (komodo/stacks/)

  • Immich - Google Photos alternative.
  • Paperless-ngx - Document management with OCR.
  • n8n - Workflow automation and integrations.
  • Miniflux - RSS feed reader.
  • Nextflux - Miniflux web frontend.
  • RSSHub - RSS feed generator.
  • Karakeep - Bookmark and read-it-later manager.
  • ByteStash - Code snippet manager.
  • Your Spotify - Spotify listening stats.
  • S-PDF - PDF tools.
  • Dozzle - Container log viewer.
  • Traefik - Reverse proxy for Docker stacks.
  • GitHub Runner - Self-hosted GitHub Actions runner.
  • Grafana LGTM - Self-hosted OTEL observability stack (Loki, Grafana, Tempo, Mimir) with cAdvisor.
  • Ntfy - Push notification service.
  • Umami - Privacy-focused web analytics.

Repository Structure 📂

.
├── k8s
│   ├── apps  # applications
│   │   ├── external  # external-facing applications (Gateway API routes)
│   │   └── internal  # internal services
│   ├── components    # reusable kustomize components
│   └── infra         # k8s infrastructure
│       ├── argocd    # gitops deployment
│       ├── network   # networking components
│       ├── security  # security components
│       └── storage   # storage components
├── stacks            # docker compose stacks managed by Komodo
└── terraform
    └── modules
        ├── monitoring          # grafana cloud monitoring
        ├── proxmox             # talos vm deployment
        ├── proxmox-csi-plugin  # proxmox storage for k8s
        ├── sealed-secrets      # k8s secret management
        ├── talos               # talos cluster deployment
        └── traefik             # traefik tls passthrough lxc container

GitOps with ArgoCD 🚢

The cluster uses ArgoCD for GitOps-based continuous delivery. All applications and infrastructure components are automatically synchronized from this Git repository.

Key Features:

  • UI Access: https://argocd.ravil.space
  • Auto-sync: All applications are configured for automatic synchronization
  • Self-healing: Automatic correction of manual cluster changes to match Git state
  • Application Structure:
    • Infrastructure components (k8s/infra/*)
    • Internal services (glance, isponsorblocktv)
    • External applications (k8s/apps/external/*)

Quick Commands:

# Get ArgoCD admin password
make argocd-password

# Restart ArgoCD components
make argocd-restart

# View application status
kubectl -n argocd get applications

About

Homelab automation and management using Proxmox, Kubernetes, Talos, and Terraform

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors