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

7.4 KiB


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
GitHub cachethq/cachet
License BSD-3-Clause
Langage PHP (Laravel)
Étoiles GitHub 15.1k
Dernière MAJ 2026-06-07
Catégorie [[cat-monitoring

📝 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é)

# 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)

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 :
    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

Pages Liées