Reset git history for making manifests public
This commit is contained in:
182
README.md
Normal file
182
README.md
Normal file
@@ -0,0 +1,182 @@
|
||||
# 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:
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user