Files
wiki/Catalogue-Self-Hosted/apps/app-kubero.md
T
2026-06-09 18:40:21 +02:00

119 lines
4.8 KiB
Markdown

---
title: Kubero
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, deployment, kubernetes, paas, devops]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Deployment, https://github.com/kubero-dev/kubero]
---
# 🚀 Kubero
> **PaaS Kubernetes léger** — déployez vos applications en quelques clics, sans devenir expert K8s. L'alternative Heroku/Heroku-like sur votre cluster.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | [kubero.dev](https://www.kubero.dev/) |
| **GitHub** | [kubero-dev/kubero](https://github.com/kubero-dev/kubero) |
| **License** | Apache-2.0 |
| **Langage** | TypeScript (Node.js) + Go (opérateur) |
| **Étoiles GitHub** | 4,3k ⭐ |
| **Catégorie** | [[cat-deployment\|Deployment]] |
| **Stack cible** | Kubernetes (auto-hébergé, K3s, EKS, GKE…) |
## 📝 Description
**Kubero** est une **plateforme PaaS open source** qui s'installe au-dessus d'un cluster Kubernetes existant pour offrir une expérience proche d'Heroku ou de Fly.io. L'objectif affiché est de masquer la complexité de K8s au développeur : on pousse son code (via Git ou via une image de conteneur) et Kubero s'occupe de créer le Deployment, le Service, l'Ingress, le certificat TLS et la base de données associée.
Kubero se compose de **deux éléments** : une UI web (Node.js/TypeScript) qui sert de tableau de bord, et un **opérateur Kubernetes** (Go) qui gère le cycle de vie des ressources dans le cluster. L'authentification s'appuie sur GitHub ou GitLab OAuth, et chaque "app" Kubero correspond à un namespace Kubernetes dédié avec isolation réseau.
**Fonctionnalités principales** :
-**Buildpacks et Docker** : déploiement depuis Git (Heroku-style) ou image OCI pré-construite
-**Add-ons managés** : PostgreSQL, MySQL, Redis, MongoDB (provisionnés automatiquement)
-**TLS automatique** via cert-manager + Let's Encrypt
-**Multi-utilisateurs** : chaque développeur a son namespace
-**Logs et exec** directement dans l'UI
-**Sleep mode** : mise en veille automatique des apps peu utilisées (économie de ressources)
**Positionnement** : plus simple qu'ArgoCD, plus complet que Canine. Idéal pour une équipe de 2-10 devs qui veut self-hoster sans monter un cluster Rancher. Pour un usage solo, [[app-coolify]] ou Dokku restent plus simples (K8s pas requis).
## 🚀 Installation
### Prérequis
- Un cluster Kubernetes fonctionnel (K3s, microK8s, k3d, ou cluster managé)
- `kubectl` configuré localement
- Helm 3
### Via Helm (recommandé)
```bash
# Ajouter le repo Helm
helm repo add kubero https://kubero-dev.github.io/kubero
helm repo update
# Installer l'opérateur
helm install kubero-operator kubero/kubero-operator \
--namespace kubero --create-namespace
# Installer l'UI
helm install kubero kubero/kubero \
--namespace kubero
```
### Installation manuelle (sans Helm)
```yaml
# kubero-namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
name: kubero
---
# voir https://github.com/kubero-dev/kubero/tree/main/deploy
```
## ⚙️ Configuration
- **OAuth Provider** : configurer GitHub/GitLab OAuth App et renseigner `KUBERO_OAUTH_GITHUB_ID` / `KUBERO_OAUTH_GITHUB_SECRET`
- **Domaines personnalisés** : déclarer le wildcard (`*.apps.example.com`) dans les paramètres du cluster et pointer un CNAME DNS vers l'Ingress
- **Resource limits** : fixer les `requests`/`limits` par app pour éviter qu'un pod ne sature le cluster
- **Backups** : les add-ons DB intègrent un cron de dump vers S3/SFTP
- **Sleep schedule** : activer le mode "sleep on inactivity" sur les apps de staging
## 🔗 Alternatives
- **[[app-canine]]** — autre PaaS K8s minimaliste, plus jeune et plus simple mais moins complet
- **[[app-coolify]]** — PaaS Docker (pas K8s), plus accessible, alternatif direct Heroku
- **ArgoCD** — GitOps pur K8s, courbe d'apprentissage beaucoup plus raide
- **Rancher** — management de cluster complet, vise l'entreprise
- **Dokku** — PaaS sur un seul serveur (Docker only, pas K8s)
## 🔒 Sécurité
- ⚠️ **Ne pas exposer Kubero en HTTP** : forcer HTTPS via l'Ingress et un cert valide
- **RBAC Kubernetes** : limiter les permissions du ServiceAccount de l'opérateur au strict nécessaire
- **Isolation des namespaces** : vérifier que les NetworkPolicies empêchent un app Kubero d'en snooper une autre
- **Secrets des add-ons DB** : stockés en Secrets K8s, mais activer le chiffrement at-rest de `etcd` pour aller plus loin
## 📚 Ressources
- [Site officiel](https://www.kubero.dev/)
- [Dépôt GitHub](https://github.com/kubero-dev/kubero)
- [Documentation](https://www.kubero.dev/docs)
- [Démo en ligne](https://demo.kubero.dev/)
## 🔗 Pages Liées
- [[cat-deployment]]
- [[app-portainer]]
- [[app-canine]]
- [[app-coolify]]
- [[cat-docker]]
- [[securisation-home-lab]]
- [[recettes-docker-compose]]