Dashy est un tableau de bord open source qui permet de centraliser tous vos outils et services dans une interface élégante et personnalisable. Dans cet article, nous allons voir comment déployer Dashy sur Kubernetes avec une configuration multi-pages et un favicon personnalisé, afin de disposer d’un portail moderne et pratique pour les équipes.
Table of Contents
🚀 Pourquoi utiliser Dashy ?
Dashy est une application self-hosted permettant de créer un portail d’accès rapide vers vos services internes et externes.
Ses avantages principaux :
- Interface personnalisable (thèmes, couleurs, logo, favicon).
- Support multi-pages pour structurer vos outils par équipes ou domaines.
- Intégration Kubernetes/Docker avec configuration via fichiers YAML.
- Support des icônes (favicon des sites, images locales ou URL).
C’est donc un outil idéal pour unifier l’accès aux applications métiers, plateformes web ou outils DevOps.
🛠️ Déploiement de Dashy sur Kubernetes
Voici un exemple de manifeste Kubernetes complet permettant de déployer Dashy dans un namespace dédié, avec un PVC pour stocker les fichiers de configuration et un Ingress pour l’accès via HTTPS.
apiVersion: v1
kind: Namespace
metadata:
name: tools
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: dashy-user-data
namespace: tools
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: dashy
namespace: tools
spec:
replicas: 1
selector:
matchLabels:
app: dashy
template:
metadata:
labels:
app: dashy
spec:
containers:
- name: dashy
image: lissy93/dashy:latest
ports:
- containerPort: 8080
volumeMounts:
- name: dashy-user-data
mountPath: /app/user-data
- name: favicon
mountPath: /app/public/favicon.ico
subPath: favicon.ico
- name: favicon
mountPath: /app/dist/favicon.ico
subPath: favicon.ico
volumes:
- name: dashy-user-data
persistentVolumeClaim:
claimName: dashy-user-data
- name: favicon
configMap:
name: dashy-favicon
---
apiVersion: v1
kind: Service
metadata:
name: dashy
namespace: tools
spec:
type: ClusterIP
ports:
- port: 8080
targetPort: 8080
selector:
app: dashy
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: dashy
namespace: tools
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
ingressClassName: nginx
tls:
- hosts:
- portail.example.com
secretName: dashy-tls
rules:
- host: portail.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: dashy
port:
number: 8080
📂 ConfigMap pour le favicon
Le favicon est servi par Dashy depuis le dossier /public/
.
Avec Kubernetes, on peut injecter un favicon via un ConfigMap binaire :
apiVersion: v1
kind: ConfigMap
metadata:
name: dashy-favicon
namespace: tools
binaryData:
favicon.ico: |
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAAB...
Cela permet de remplacer le favicon par défaut et d’afficher votre propre logo dans l’onglet du navigateur.
📑 ConfigMap pour la configuration multi-pages
Dashy supporte le mode multi-pages, idéal pour séparer vos services par domaine ou par équipe. Exemple :
apiVersion: v1
kind: ConfigMap
metadata:
name: dashy-config
namespace: tools
data:
conf.yml: |
pageInfo:
title: 'Portail DSI'
description: Bienvenue sur les outils de la DSI !
appConfig:
theme: material
layout: horizontal
hideComponents:
hideFooter: true
pages:
- name: Reseau
path: reseau.yml
- name: Infogestion
path: infogestion.yml
- name: Support
path: support.yml
Chaque sous-page (reseau.yml
, infogestion.yml
, 911.yml
) contient ses propres sections et items.
Exemple d’une sous-page reseau.yml
data:
tools.yml: |
pageInfo:
title: "Réseau"
description: "Outils du pôle Systèmes, Réseaux et Sécurité"
sections:
- name: "Sécurité"
items:
- title: "WithSecure"
url: "https://elements.withsecure.com"
icon: favicon
- title: "Zabbix"
url: "https://zabbix.exemple"
icon: favicon
De la même manière, vous pouvez créer infogestion.yml
et support.yml
dans le même ConfigMap Kubernetes.
Configurer l’authentification SSO (OIDC)
Dashy prend en charge OpenID Connect (OIDC), ce qui permet de sécuriser le portail via un fournisseur SSO comme Keycloak, Azure AD, ou CAS OIDC.
Exemple de configuration OIDC :
appConfig:
auth:
enableOidc: true
oidc:
clientId: dashy-client
endpoint: https://ssov2.example.com/cas/oidc
scopes: openid profile email
autoLogin: true
➡️ Avec cette configuration, Dashy redirige automatiquement l’utilisateur vers le SSO pour authentification, avant d’afficher les pages.
🎨 Résultat attendu
- Un portail unique, accessible via une URL sécurisée par HTTPS.
- Navigation par onglets : chaque équipe (Réseau, Infogestion, support, etc.) a sa propre page.
- Logo + favicon personnalisés pour renforcer l’identité visuelle.
- Centralisation des outils (GLPI, Zabbix, Gitlab, Jira, Confluence, etc.) dans une seule interface claire.
- Accès sécurisé via SSO (OIDC).
Mots-clés ciblés :
- Dashy Kubernetes
- Dashboard multi-pages open source
- Favicon Dashy
- Portail IT personnalisé
- Self-hosted dashboard
Déployez Dashy sur Kubernetes avec multi-pages et favicon personnalisé. Découvrez comment centraliser vos outils IT dans un portail moderne, sécurisé et open source.
✅ Conclusion
Déployer Dashy sur Kubernetes est une solution simple et puissante pour offrir un portail IT moderne à vos équipes. Grâce au support multi-pages et à la possibilité d’ajouter un favicon personnalisé, vous disposez d’un tableau de bord centralisé, ergonomique et aligné sur l’identité de votre organisation.