Kubernetes Manifests Repository

This repository contains Kubernetes manifest files for a comprehensive self-hosted platform running 40+ applications across various categories. This infrastructure was created for the migration from Docker to Kubernetes (K3S).

Overview

This infrastructure provides a complete solution for:

  • Media management and streaming
  • AI/ML workloads
  • Development and CI/CD workflows
  • Productivity and collaboration tools
  • Network and system administration
  • Storage and backup solutions

All applications are managed using GitOps principles with ArgoCD and utilize cert-manager for automated TLS certificate management.

Repository Structure

The repository is organized with one directory per application, containing all necessary Kubernetes resources:

├── argocd/              # GitOps continuous deployment
├── cert-manager/        # TLS certificate management
├── metallb/             # Load balancer
├── kubevip/             # High availability
├── longhorn/            # Distributed storage
├── envoy-gateway/       # Kubernetes Gateway API configuration
├── infisical/           # Secrets management
├── authentik/           # Identity provider and SSO
├── it-tools/            # IT utilities
├── jellyfin/            # Media server
├── seerr/               # Media request management
├── immich/              # Photo and video management
├── minecraft/           # Game servers
├── gitea/               # Git service
├── jenkins/             # CI/CD automation
├── n8n/                 # Workflow automation
├── react-resume/        # Resume builder application
├── passbolt/            # Password manager
├── wikijs/              # Documentation wiki
├── zipline/             # File sharing
├── gotify/              # Push notification server
├── ntfy/                # Push notifications
├── bentopdf/            # PDF conversion
├── excalidraw/          # Whiteboard / diagramming
├── searxng/             # Privacy-respecting search engine
├── uptime-kuma/         # Uptime monitoring
├── shelfmark/           # Bookmarks manager
├── openwebui/           # Web UI for AI models
├── ollama/              # Local LLM runner
├── comfyui/             # Stable Diffusion workflow UI
├── minio-aistor/        # S3-compatible object storage
├── databasus/           # Database management
├── netbootxyz/          # Network boot service
├── technitium/          # DNS server
├── azure-ddns-python/   # Dynamic DNS updater
├── victoria-metrics/    # Metrics, monitoring and logging
├── proxmox/             # Virtualization platform
├── unifi/               # Network controller
├── truenas/             # Storage system
├── deprecated/          # No longer active configurations (kept for reference)
└── future-plans/        # Configurations planned for future use

Categories

Core Infrastructure

  • ArgoCD: GitOps continuous deployment and application management
  • cert-manager: Automated TLS certificate provisioning using Azure DNS
  • MetalLB: Bare-metal load balancer
  • KubeVIP: High-availability control plane
  • Longhorn: Distributed block storage
  • Envoy Gateway: Kubernetes Gateway API implementation
  • Infisical: Secrets management platform
  • Authentik: Identity provider and SSO

Media & Entertainment

  • Jellyfin: Media streaming server
  • Seerr: Media request and discovery
  • Immich: Self-hosted photo and video management
  • Minecraft: Game servers (ATM-10, Homestead and Stacia 2 Expert modpacks)

AI & Machine Learning

  • Ollama: Local LLM runner
  • Open WebUI: Web interface for AI models
  • ComfyUI: Stable Diffusion workflow UI

Development & CI/CD

  • Gitea: Self-hosted Git service with Actions runner
  • Jenkins: Automation server for CI/CD pipelines
  • n8n: Workflow automation platform
  • MinIO AIStor: S3-compatible object storage

Productivity & Collaboration

  • React-Resume: Resume builder with MinIO and PostgreSQL
  • Passbolt: Team password manager
  • Wiki.js: Modern documentation platform
  • Zipline: File sharing and screenshot service
  • Gotify: Push notification server with REST API and WebSocket support
  • Ntfy: Push notification service
  • BentoPDF: PDF conversion service
  • Excalidraw: Online whiteboard and diagramming tool
  • SearXNG: Privacy-respecting metasearch engine
  • Shelfmark: Bookmarks manager
  • Databasus: Database management UI
  • Uptime Kuma: Uptime and status monitoring

Administration & Monitoring

  • IT-Tools: Collection of useful IT utilities
  • Technitium: DNS server with web interface
  • Azure DDNS Python: Dynamic DNS updater for Azure DNS
  • NetbootXYZ: Network boot service for OS installation
  • VictoriaMetrics: Metrics collection, monitoring and logging stack (includes VictoriaLogs)

External Service Integration

  • Proxmox: Virtualization platform integration
  • UniFi: Network controller integration
  • TrueNAS: Storage system integration

Common Patterns

Networking

  • Ingress Controller: Envoy Gateway (Kubernetes Gateway API)
  • TLS: Automated certificate management via cert-manager with Azure DNS validation
  • Load Balancer: MetalLB for external access

Storage

  • Persistent Storage: Longhorn distributed storage
  • StatefulSets: Used for applications requiring persistent state
  • PersistentVolumeClaims: Separate PVCs for different data types (config, data, backups)
  • Static Volumes: longhorn-static StorageClass used for manually pre-provisioned volumes

Security

  • Secrets Management: Infisical operator syncs secrets into Kubernetes as native Secrets
  • TLS: All web interfaces secured with HTTPS
  • SSO: Authentik for centralized authentication

Application Architecture

  • Multi-tier Applications: Separate deployments for apps and databases
  • Configuration Management: ConfigMaps for application settings
  • Service Discovery: ClusterIP services with internal DNS

Deployment

This repository is designed for GitOps deployment using ArgoCD:

  1. ArgoCD monitors this repository for changes
  2. Changes are automatically synced to the cluster
  3. Applications are deployed with declarative configurations
  4. Rollbacks are possible through Git history

Infrastructure Requirements

  • Kubernetes Cluster: K3S v1.33+
  • Storage: Longhorn distributed storage
  • Load Balancer: MetalLB configured
  • DNS: Azure DNS for certificate validation
  • Secrets: Infisical instance for secret management
Description
Kubernetes manifests for my self-hosted homelab cluster — 40+ applications managed with ArgoCD, Envoy Gateway, and Infisical."
Readme 4.3 MiB
Languages
Markdown 100%