Initial vault setup
This commit is contained in:
@@ -0,0 +1,196 @@
|
||||
---
|
||||
title: Cachet
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, monitoring, status-page, incident, php, laravel, auto-hebergement]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=Monitoring, https://github.com/cachethq/cachet]
|
||||
---
|
||||
|
||||
# 📊 Cachet
|
||||
|
||||
> **La status page open source historique** : communiquez l'état de vos services à vos utilisateurs avec élégance. Incidents, maintenances planifiées, métriques d'uptime. Écrit en PHP/Laravel.
|
||||
|
||||
## 📋 Informations Générales
|
||||
|
||||
| Champ | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | [cachethq.io](https://cachethq.io/) |
|
||||
| **GitHub** | [cachethq/cachet](https://github.com/cachethq/cachet) |
|
||||
| **License** | BSD-3-Clause |
|
||||
| **Langage** | PHP (Laravel) |
|
||||
| **Étoiles GitHub** | 15.1k ⭐ |
|
||||
| **Dernière MAJ** | 2026-06-07 |
|
||||
| **Catégorie** | [[cat-monitoring|Monitoring]], Status Page, Incident Management |
|
||||
|
||||
## 📝 Description
|
||||
|
||||
**Cachet** est une **plateforme de status page** open source. Elle permet d'afficher publiquement l'état de vos services (UP / DEGRADED / DOWN), de gérer les **incidents**, de planifier les **maintenances**, et de **notifier les abonnés** par email.
|
||||
|
||||
C'est l'équivalent open source de **Statuspage.io** (racheté par Atlassian) : une page web publique que vos clients peuvent consulter pour savoir si un service est en panne, sans avoir à ouvrir un ticket.
|
||||
|
||||
- ✅ **Status page publique** personnalisable (logo, couleurs, domaines custom)
|
||||
- ✅ **Composants** : modéliser vos services (API, frontend, base de données, etc.)
|
||||
- ✅ **Incidents** : ouvrir, escalader, résoudre, commenter publiquement
|
||||
- ✅ **Maintenances planifiées** : annoncer une coupure à l'avance
|
||||
- ✅ **Métriques d'uptime** : graphiques par composant
|
||||
- ✅ **Notifications email** : abonnés notifiés à chaque incident
|
||||
- ✅ **API REST** complète : intégration avec [[app-uptime-kuma]], Nagios, etc.
|
||||
- ✅ **Webhooks** : déclencher des actions externes
|
||||
- ✅ **Multi-langue** : 14+ traductions
|
||||
- ✅ **Auth 2FA** : TOTP pour les admins
|
||||
- ✅ **Thèmes custom** : CSS et templates Blade
|
||||
|
||||
**Public cible** : **entreprises, hébergeurs, SaaS, équipes IT** qui veulent une status page professionnelle sans dépendre de Statuspage.io.
|
||||
|
||||
**Comparaison** : Cachet se distingue d'[[app-uptime-kuma]] (qui fait du monitoring d'uptime) en étant **purement orienté communication externe** : Cachet n'interroge pas vos services, il **annonce leur état**. Il se combine très bien avec Uptime Kuma (qui détecte les pannes) en appelant l'API de Cachet via webhook. Par rapport à **Gatus** (plus récent, Go), Cachet a une UI plus traditionnelle mais un écosystème de plugins plus riche historiquement.
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Option 1 : Docker Compose (officiel, recommandé)
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
version: '3.8'
|
||||
services:
|
||||
cachet:
|
||||
image: cachethq/docker:latest
|
||||
container_name: cachet
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
- cachet-db
|
||||
- cachet-redis
|
||||
ports:
|
||||
- "8000:8000" # Web UI
|
||||
environment:
|
||||
APP_KEY: "base64:votre-cle-de-32-chars-aleatoire=="
|
||||
APP_URL: https://status.example.com
|
||||
DB_CONNECTION: mysql
|
||||
DB_HOST: cachet-db
|
||||
DB_DATABASE: cachet
|
||||
DB_USERNAME: cachet
|
||||
DB_PASSWORD: cachet-password
|
||||
CACHE_DRIVER: redis
|
||||
SESSION_DRIVER: redis
|
||||
REDIS_HOST: cachet-redis
|
||||
MAIL_DRIVER: smtp
|
||||
MAIL_HOST: smtp.example.com
|
||||
MAIL_PORT: 587
|
||||
MAIL_USERNAME: status@example.com
|
||||
MAIL_PASSWORD: mail-password
|
||||
MAIL_ENCRYPTION: tls
|
||||
MAIL_FROM_ADDRESS: status@example.com
|
||||
volumes:
|
||||
- cachet-data:/var/www/html/storage
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.cachet.rule=Host(`status.example.com`)"
|
||||
- "traefik.http.routers.cachet.entrypoints=websecure"
|
||||
- "traefik.http.routers.cachet.tls.certresolver=letsencrypt"
|
||||
|
||||
cachet-db:
|
||||
image: mysql:8
|
||||
container_name: cachet-db
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
MYSQL_DATABASE: cachet
|
||||
MYSQL_USER: cachet
|
||||
MYSQL_PASSWORD: cachet-password
|
||||
MYSQL_ROOT_PASSWORD: root-password
|
||||
volumes:
|
||||
- cachet-db:/var/lib/mysql
|
||||
|
||||
cachet-redis:
|
||||
image: redis:7-alpine
|
||||
container_name: cachet-redis
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
cachet-data:
|
||||
cachet-db:
|
||||
```
|
||||
|
||||
### Option 2 : Installation bare-metal (Debian/Ubuntu)
|
||||
|
||||
```bash
|
||||
git clone https://github.com/cachethq/cachet.git
|
||||
cd cachet
|
||||
composer install --no-dev -o
|
||||
cp .env.example .env
|
||||
php artisan key:generate
|
||||
php artisan migrate
|
||||
php artisan config:cache
|
||||
```
|
||||
|
||||
## ⚙️ Configuration Initiale
|
||||
|
||||
1. **Accéder à l'UI** : `http://IP:8000`
|
||||
2. **Créer le compte admin** via la commande :
|
||||
```bash
|
||||
docker exec -it cachet php artisan cachet:user
|
||||
```
|
||||
3. **Configurer les composants** : Setup > Components > Add (ex: "API Production", "Frontend", "Database")
|
||||
4. **Personnaliser l'apparence** : Settings > Theme (logo, couleurs, favicon)
|
||||
5. **Brancher un outil de monitoring** : Uptime Kuma, Gatus, etc., via l'API REST ou les webhooks
|
||||
6. **Inviter l'équipe** : Users > Invite (rôles : Admin, User)
|
||||
|
||||
## 🔄 Alternatives
|
||||
|
||||
### Open Source
|
||||
|
||||
- **Gatus** — Plus moderne, écrit en Go, plus léger
|
||||
- [[app-uptime-kuma]] — Monitoring + status page intégrée
|
||||
- **Statping-ng** — Fork actif de Statping (qui est stale)
|
||||
- **Statusfy** — Vue.js/Nuxt, statique
|
||||
- **Instatus** — Pas self-hosted, mais gratuit jusqu'à un certain volume
|
||||
- **Vigil** — Microservice status page (Rust)
|
||||
- **Kener** — Status page moderne en Node.js
|
||||
|
||||
### Comparaison Cachet vs alternatives
|
||||
|
||||
| Critère | Cachet | Gatus | Uptime Kuma | Statping-ng |
|
||||
| :--- | :--- | :--- | :--- | :--- |
|
||||
| Self-hosted | ✅ | ✅ | ✅ | ✅ |
|
||||
| Monitoring intégré | ❌ | ✅ (HTTP, TCP, ICMP, DNS) | ✅ | ✅ |
|
||||
| Status page | ✅ | ✅ | ✅ | ✅ |
|
||||
| Incidents | ✅ | ✅ | Basique | ✅ |
|
||||
| Abonnés email | ✅ | ✅ | ✅ | ✅ |
|
||||
| Langage | PHP | Go | JS | Go |
|
||||
| UI traditionnelle | ✅ (Laravel) | Moderne | Moderne | Datée |
|
||||
|
||||
**Verdict** : Cachet reste **la référence historique** pour une status page dédiée, mais **Gatus le rattrape** avec monitoring intégré. **Uptime Kuma** combine les deux avec une UI plus moderne.
|
||||
|
||||
### Propriétaires (ce que Cachet remplace)
|
||||
|
||||
- **Atlassian Statuspage** (à partir de $29/mois)
|
||||
- **Status.io** (à partir de $79/mois)
|
||||
- **Instatus** (gratuit jusqu'à 1000 abonnés, puis payant)
|
||||
- **Better Uptime Status Page** (inclus avec le plan Better Uptime)
|
||||
- **Freshstatus** (intégré à Freshservice, payant)
|
||||
|
||||
## 🔐 Sécurité
|
||||
|
||||
- **Auth** : email/password, 2FA TOTP pour admins
|
||||
- **HTTPS** via [[app-traefik]] obligatoire (page publique + API)
|
||||
- **Rate limiting** sur l'API pour éviter les abus
|
||||
- **CSRF** : protection native Laravel
|
||||
- **Secrets** : `APP_KEY` doit être aléatoire (32+ caractères) et **ne jamais fuiter**
|
||||
- **Headers de sécurité** : configurer CSP, HSTS, X-Frame-Options via le reverse proxy
|
||||
|
||||
## 📚 Ressources
|
||||
|
||||
- [GitHub cachethq/cachet](https://github.com/cachethq/cachet)
|
||||
- [Documentation officielle](https://docs.cachethq.io/)
|
||||
- [Démo publique](https://status.cachethq.io/)
|
||||
- [API Reference](https://docs.cachethq.io/docs/api/getting-started)
|
||||
- [Communauté Discord](https://discord.gg/cachet)
|
||||
|
||||
## Pages Liées
|
||||
|
||||
- [[cat-monitoring]] — Catégorie Monitoring
|
||||
- [[app-uptime-kuma]] — Monitoring d'uptime + status page
|
||||
- [[app-traefik]] — Reverse proxy HTTPS
|
||||
- [[observabilite]] — Vue d'ensemble observabilité
|
||||
- [[checklist-monitoring-minimal]] — Checklist
|
||||
Reference in New Issue
Block a user