Files
Kubernetes-Manifests/README.md

7.5 KiB

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