An open API service indexing awesome lists of open source software.

https://github.com/abdullahainun/homelab-k8s-services

Production-ready Kubernetes configurations for self-hosted services in homelab environments
https://github.com/abdullahainun/homelab-k8s-services

argocd cert-manager container-orchestration devops flux gitops grafana helm homelab homelab-automation infrastructure-as-code ingress-nginx kubernetes kubernetes-manifests kustomize metallb monitoring production-ready prometheus self-hosted

Last synced: 4 months ago
JSON representation

Production-ready Kubernetes configurations for self-hosted services in homelab environments

Awesome Lists containing this project

README

          

# ๐Ÿ  Homelab K8s Services

A **GitOps-powered** Kubernetes homelab with **Cloudflare Tunnel** integration, featuring **automated preview environments** and **community-driven service catalog**.

## ๐Ÿš€ Quick Start

### Deploy Your Service
1. **Fork** this repository
2. **Add your service** to `apps///`
3. **Create a Pull Request**
4. **Comment** `/preview` to deploy preview environment
5. **Merge** to deploy to production

### Available Commands
```bash
# Preview & Planning (Everyone)
/help # Show available commands
/plan # Show deployment plan
/status # Check preview environments

# Deployment (Maintainers & Collaborators)
/preview # Deploy all changed services
/preview ai/open-webui # Deploy specific service
/cleanup # Manual cleanup
```

## ๐Ÿ“ Directory Structure
```
homelab-k8s/
โ”œโ”€โ”€ apps/ # Application services
โ”‚ โ”œโ”€โ”€ examples/ # AI/ML services
โ”‚ โ”‚ โ””โ”€โ”€ whoami/ # Example service
โ”‚ โ”œโ”€โ”€ dev/ # Development tools
โ”‚ โ””โ”€โ”€ media/ # Media services
โ”œโ”€โ”€ platform/ # Platform components
โ”‚ โ”œโ”€โ”€ ingress-nginx/ # Ingress controller
โ”‚ โ”œโ”€โ”€ cert-manager/ # TLS certificates
โ”‚ โ””โ”€โ”€ metallb/ # Load balancer
โ””โ”€โ”€ clusters/homelab/ # Cluster configuration
โ””โ”€โ”€ flux-system/ # GitOps configuration
```

## ๐Ÿ› ๏ธ Adding a New Service

### 1. Create Service Directory
```bash
mkdir -p apps///base
cd apps///base
```

### 2. Add Kubernetes Manifests
Create your service files:
- `deployment.yaml` - Your application
- `service.yaml` - Service exposure
- `kustomization.yaml` - Kustomize config

### 3. Example Service Structure
```yaml
# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: nginx:latest
ports:
- containerPort: 80
---
# service.yaml
apiVersion: v1
kind: Service
metadata:
name: my-app
spec:
selector:
app: my-app
ports:
- port: 80
targetPort: 80
```

## ๐ŸŒ Preview Environments

When you create a PR:
- **Auto-generated domains**: `pr-123-service.abdullahainun.site`
- **Zero-trust protection**: Cloudflare security
- **Auto-cleanup**: Removed when PR closes
- **Resource limits**: Fair usage policies

## ๐Ÿค Contributing

### For Everyone
- ๐Ÿ“‹ Use `/plan` to explore deployments (read-only)
- ๐Ÿ“Š Use `/status` to check environments
- ๐Ÿค Contribute improvements via PRs

### For Collaborators
- ๐Ÿš€ Deploy preview environments with `/preview`
- ๐Ÿงน Cleanup resources with `/cleanup`
- โœ… Full access to all commands

### Want Deploy Access?
- Become a regular contributor
- Request collaborator access from [@abdullahainun](https://github.com/abdullahainun)
- Join the homelab community!

## ๐Ÿ”ง Tech Stack

- **๐Ÿšข Kubernetes**: Container orchestration
- **๐Ÿ”„ Flux CD**: GitOps continuous deployment
- **๐ŸŒ Ingress NGINX**: Traffic routing
- **โ˜๏ธ Cloudflare Tunnel**: Secure external access & DNS
- **๐Ÿค– GitHub Actions**: CI/CD automation

## ๐Ÿ“Š Cluster Info

```bash
# Cluster nodes
homelab-k8s-cp-1 # Control plane
homelab-k8s-worker-1 # Worker node
homelab-k8s-worker-2 # Worker node
```

## ๐Ÿ“ž Support

- ๐Ÿ› **Issues**: [GitHub Issues](https://github.com/abdullahainun/homelab-k8s-services/issues)
- ๐Ÿ’ฌ **Discussions**: [GitHub Discussions](https://github.com/abdullahainun/homelab-k8s-services/discussions)
- ๐Ÿ“ง **Contact**: [@abdullahainun](https://github.com/abdullahainun)

---

โญ **Star this repo** if you find it useful! | ๐Ÿค **Contributions welcome** | ๐Ÿ  **Built with โค๏ธ for the homelab community**