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

114 lines
4.6 KiB
Markdown

---
title: Canine
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/czetech/canine]
---
# 🚀 Canine
> **PaaS Kubernetes minimaliste** — la surcouche K8s la plus simple pour déployer des apps depuis Git, sans la complexité d'outils comme ArgoCD ou Rancher.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | [canine.sh](https://canine.sh/) |
| **GitHub** | [czetech/canine](https://github.com/czetech/canine) |
| **License** | MIT |
| **Langage** | Ruby (Rails 7) + Hotwire |
| **Étoiles GitHub** | 2,9k ⭐ |
| **Catégorie** | [[cat-deployment\|Deployment]] |
| **Stack cible** | Kubernetes (K3s, EKS, GKE…) |
## 📝 Description
**Canine** est un **PaaS Kubernetes** conçu dans un esprit "simplicité radicale". Contrairement à ArgoCD (GitOps pur, déclaratif, sans UI vraiment pensée pour l'utilisateur final) ou à Kubero (plus complet mais aussi plus dense), Canine vise un public qui veut juste **pousser du code sur son cluster sans réfléchir à la grammaire Kubernetes**.
Le positionnement marketing officiel est "Heroku for Kubernetes" : on connecte un repo Git, on clique sur "Deploy", et Canine crée un Deployment, un Service, un Ingress avec TLS, et configure les variables d'environnement. Le tout en quelques secondes.
**Fonctionnalités principales** :
-**Déploiement Git** : push → build → deploy, buildpacks ou Dockerfile
-**TLS automatique** via cert-manager
-**Custom domains** : associer un domaine à chaque service
-**Add-ons managés** : PostgreSQL, MySQL, Redis (provisionnement en un clic)
-**Logs et exec** temps réel depuis l'UI
-**Rollback** en un clic (versions d'images Docker)
-**CLI** (`caninectl`) pour scripter les déploiements
**Positionnement vs Kubero** : Canine est **plus jeune et plus minimaliste** (2,9k ⭐ vs 4,3k). Si l'écosystème est moins riche, l'UX est plus directe. Pour un solo dev qui veut "Heroku sur son cluster K3s", Canine est probablement le bon choix. Pour une équipe de 5+ avec des add-ons complexes, Kubero est plus adapté.
## 🚀 Installation
### Prérequis
- Un cluster Kubernetes (K3s, microK8s, k3d, ou managé)
- `kubectl` configuré
- Helm 3
### Via Helm (recommandé)
```bash
# Ajouter le repo
helm repo add canine https://czetech.github.io/canine
helm repo update
# Créer le namespace
kubectl create namespace canine
# Installer
helm install canine canine/canine \
--namespace canine \
--set apiKey=$(openssl rand -hex 32) \
--set ingress.host=canine.example.com
```
### Configuration DNS
Pointer un wildcard `*.canine.example.com` vers l'IP de l'Ingress. Canine utilise ce wildcard pour les apps déployées (ex. `monapp.canine.example.com`).
## ⚙️ Configuration
- **Git provider** : connecter un compte GitHub ou GitLab via OAuth
- **Registry** : Canine peut builder lui-même (buildpacks) ou utiliser des images pré-construites depuis Docker Hub, GHCR, GitLab Registry
- **Resource limits** : fixer requests/limits par projet pour protéger le cluster
- **Sleep mode** : configurer l'arrêt automatique des apps en dev/staging la nuit
- **API tokens** : créer un token par membre de l'équipe, avec un scope limité
## 🔗 Alternatives
- **[[app-kubero]]** — PaaS K8s plus complet, plus mature, mais plus dense à configurer
- **[[app-coolify]]** — PaaS Docker (pas K8s), plus accessible si vous n'avez pas de cluster
- **ArgoCD** — standard GitOps K8s, courbe d'apprentissage très raide
- **Rancher** — management de cluster complet, vise l'entreprise
- **Sealos** — PaaS K8s "cloud-like", très populaire en Chine
## 🔒 Sécurité
- ⚠️ **Ne pas exposer Canine sans Ingress TLS** : activer HTTPS en priorité
- **Limiter l'opérateur K8s** : le ServiceAccount de Canine crée des ressources, lui donner un ClusterRole minimal
- **Secrets et variables** : Canine stocke les secrets en Secrets K8s, mais le chiffrement at-rest d'`etcd` reste à activer au niveau du cluster
- **Audit** : activer les logs d'audit K8s pour tracer qui déploie quoi
- **Pas de multi-tenant fort** : Canine n'est pas conçu pour héberger des clients hostiles ; pour un PaaS commercial, préférer Sealos ou Qovery
## 📚 Ressources
- [Site officiel](https://canine.sh/)
- [Dépôt GitHub](https://github.com/czetech/canine)
- [Documentation](https://docs.canine.sh/)
- [Démo](https://demo.canine.sh/)
## 🔗 Pages Liées
- [[cat-deployment]]
- [[app-portainer]]
- [[app-kubero]]
- [[app-coolify]]
- [[cat-docker]]
- [[securisation-home-lab]]
- [[recettes-docker-compose]]