5a591f145d305d2732b7fb4e49a17c87d6b21696
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
├── 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
- 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:
- ArgoCD monitors this repository for changes
- Changes are automatically synced to the cluster
- Applications are deployed with declarative configurations
- 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
Description
Kubernetes manifests for my self-hosted homelab cluster — 40+ applications managed with ArgoCD, Envoy Gateway, and Infisical."
Languages
Markdown
100%