Initial vault setup
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user