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
- Host: GitHub
- URL: https://github.com/abdullahainun/homelab-k8s-services
- Owner: abdullahainun
- License: mit
- Created: 2025-06-12T22:03:34.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2025-06-18T03:19:11.000Z (4 months ago)
- Last Synced: 2025-06-18T03:25:58.598Z (4 months ago)
- Topics: 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
- Homepage:
- Size: 15.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Contributing: docs/contributing.md
- License: LICENSE
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**