# 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 ├── cloud-native-postgres/ # PostgreSQL operator ├── 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 ├── arrstack/ # Media automation (Radarr/Sonarr) ├── immich/ # Photo and video management ├── minecraft/ # Game servers ├── gitea/ # Git service ├── harbor/ # Container registry ├── 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 ├── openwebui/ # Web UI for AI models ├── ollama/ # Local LLM runner ├── comfyui/ # Stable Diffusion workflow UI ├── stable-diffusion/ # Image generation ├── 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 and monitoring ├── proxmox/ # Virtualization platform ├── unifi/ # Network controller └── truenas/ # Storage system ``` ## Categories ### Core Infrastructure - **ArgoCD**: GitOps continuous deployment and application management - **cert-manager**: Automated TLS certificate provisioning using Azure DNS - **MetalLB**: Bare-metal load balancer (IP pool: 10.8.11.100-10.8.11.150) - **KubeVIP**: High-availability control plane - **Longhorn**: Distributed block storage - **Cloud Native Postgres**: PostgreSQL operator for database management - **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 - **Arrstack**: Automated media management (Radarr for movies, Sonarr for TV) - **Immich**: Self-hosted photo and video management - **Minecraft**: Game servers (ATM-10 and Stacia 2 Expert modpacks) ### AI & Machine Learning - **Ollama**: Local LLM runner - **Open WebUI**: Web interface for AI models - **ComfyUI**: Stable Diffusion workflow UI - **Stable Diffusion**: AI image generation ### Development & CI/CD - **Gitea**: Self-hosted Git service with container registry - **Harbor**: Enterprise container registry - **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 - **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 and monitoring stack ### 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 - **DNS**: Certificate validation through Azure DNS - **Domain**: *.jsme.be - **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) ### Security - **Secrets Management**: Kubernetes Secrets for sensitive data - **Network Policies**: Application isolation where configured - **RBAC**: Role-based access control for ArgoCD and service accounts - **TLS**: All web interfaces secured with HTTPS - **SSO**: Authentik for centralized authentication ### Application Architecture - **Multi-tier Applications**: Separate deployments for apps and databases - **Database Pattern**: PostgreSQL via Cloud Native Postgres operator as backend - **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 ## Documentation Each application directory contains a detailed README.md with: - Application description and purpose - Configuration details - Resource specifications - Setup instructions - Integration notes Refer to individual application READMEs for specific information. ## Infrastructure Requirements - **Kubernetes Cluster**: K3S v1.33+ - **Storage**: Longhorn distributed storage - **Load Balancer**: MetalLB configured - **DNS**: Azure DNS for certificate validation - **Domain**: jsme.be with wildcard DNS records ## Maintenance - **GitOps**: All changes made through Git commits - **Certificate Renewal**: Automated via cert-manager - **Backups**: Application-specific backup strategies (see individual READMEs) - **Updates**: Managed through image tag updates in manifests