# 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