Files
2026-06-09 18:40:21 +02:00

121 lines
5.0 KiB
Markdown

---
title: Dynacat
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, dashboard, docker, auto-categorisation, auto-hebergement]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Dashboard, https://github.com/Typ0genius/dynacat]
---
# 📊 Dynacat
> **Dashboard dynamique de services** : catégorisation automatique des conteneurs Docker à partir de leurs **labels** (stack Traefik, monitoring, media, etc.).
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | — |
| **GitHub** | [Typ0genius/dynacat](https://github.com/Typ0genius/dynacat) |
| **License** | MIT |
| **Langage** | JavaScript (Node.js) |
| **Étoiles GitHub** | 914 ⭐ |
| **Catégorie** | [[cat-dashboard]] |
## 📝 Description
**Dynacat** est un dashboard léger dont la particularité est de **générer dynamiquement la liste et la catégorisation des services** à partir des **labels Docker** posés sur les conteneurs (notamment ceux utilisés par [[app-traefik]] : `traefik.enable`, routers, services…).
L'idée : au lieu de maintenir à la main un fichier de configuration qui liste chaque service, on demande à Dynacat de **scanner le socket Docker** et d'inférer l'organisation. Ajouter un nouveau conteneur avec les bons labels = apparition automatique dans le dashboard, sans reconfiguration.
**Points clés :**
- 🐳 **Découverte automatique** via le socket Docker (`/var/run/docker.sock`)
- 🏷️ **Catégorisation par labels** : une stack (par ex. `stack=media`) devient une section du dashboard
- 🎨 **Templates de groupes** : disposition en tuiles, sections pliables
- 🖼️ **Icônes auto** (favicon du domaine) ou `label.icon` personnalisé
- ⚡ Léger, Node.js, base SQLite embarquée
- 🔌 Compatible avec l'écosystème label-first (Traefik, Docker Compose, Swarm, Portainer stacks)
**Différence avec [[app-dashy]] / [[app-glance]]** : ces derniers reposent sur une configuration **manuelle** (YAML ou UI). Dynacat mise sur le **zéro-config** : tant que les labels sont bons, le dashboard s'auto-organise.
**Différence avec [[app-homepage]]** : Homepage propose aussi la découverte de services mais reste centré sur une **bibliothèque statique** éditable, là où Dynacat pousse la logique label-driven.
## 🚀 Installation
### Via Docker (recommandé)
```yaml
# docker-compose.yml
services:
dynacat:
image: typ0genius/dynacat:latest
container_name: dynacat
restart: unless-stopped
ports:
- "5000:5000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data:/app/data
environment:
- TZ=Europe/Paris
labels:
- "traefik.enable=true"
- "traefik.http.routers.dynacat.rule=Host(`dynacat.example.com`)"
- "traefik.http.routers.dynacat.entrypoints=websecure"
- "traefik.http.routers.dynacat.tls.certresolver=letsencrypt"
```
### Installation manuelle
```bash
git clone https://github.com/Typ0genius/dynacat.git
cd dynacat
npm install
npm start # http://localhost:5000
```
> Nécessite Node.js 18+ et l'accès au socket Docker de l'hôte.
## ⚙️ Configuration
1. **Définir des labels homogènes** sur ses stacks Docker (ex. `dynacat.group=Media`, `dynacat.icon=https://…`).
2. **Pointer Dynacat sur le socket Docker** de l'hôte (montage `/var/run/docker.sock`).
3. **Choisir le mode de catégorisation** : par label de groupe, par stack Compose, par réseau.
4. **Personnaliser l'ordre** des sections via les labels `dynacat.order=N`.
5. **Thème clair/sombre** + couleurs par groupe pour une lecture rapide.
## 🔗 Alternatives
- **[[app-dashy]]** — Référence des dashboards self-hosted, configuration YAML riche, widgets
- **[[app-homepage]]** — Dashboard moderne très populaire, services + bookmarks + monitoring
- **[[app-glance]]** — Widgets multiples, lecture rapide, pas d'auto-découverte
- **[[app-heimdall]]** — Fiable, mature, configuration manuelle
- **[[app-fenrus]]** — Voir fiche dédiée : single-user, smart home + apps
## 🔒 Sécurité
- **🔐 Mettre Dynacat derrière un reverse-proxy authentifié** : le socket Docker exposé donne un accès complet à l'hôte.
- **🚫 Ne jamais exposer le port 5000 directement** sur Internet sans authentification.
- **🛡️ Privilèges :** montage du socket en *read-only* (`ro`) suffit pour la découverte, ne pas ajouter `privileged: true`.
- **🔍 Auditer les labels** des conteneurs : un service mal étiqueté apparaîtra dans le dashboard.
## 📚 Ressources
- [GitHub — Typ0genius/dynacat](https://github.com/Typ0genius/dynacat)
- [selfh.st — Apps Dashboard](https://selfh.st/apps/?tag=Dashboard)
- [Documentation Traefik — Labels](https://doc.traefik.io/traefik/middlewares/headers/)
## 🔗 Pages Liées
- [[cat-dashboard]]
- [[app-dashy]] — concurrent principal (manuel)
- [[app-homepage]] — concurrent moderne
- [[app-glance]] — widgets read-only
- [[app-fenrus]] — autre fiche de ce batch
- [[app-traefik]] — source des labels exploités
- [[securisation-home-lab]] — socket Docker = surface d'attaque
- [[recettes-docker-compose]] — labels Traefik standards