Description
Mafl prend le contre-pied des dashboards verticaux classiques (Dashy, Heimdall…) : au lieu d'une grille, on a une barre horizontale unique listant les services. Inspiré de l'esthétique des pages d'accueil orientées terminal/hacker, il mise sur l'efficacité visuelle et la sobriété.
Philosophie :
- 🧭 Une seule barre horizontale : pas de scrolling infini, pas de widgets
- 🔤 Typographie monospace + couleurs sobres
- 🖼️ Icônes claires : une icône par service, libellé court
- 🌑 Mode sombre par défaut
- ⚡ Très léger : peu de JS, peu de CSS, rendu instantané
- 📐 Layout responsive : la barre s'adapte aux écrans larges (TV, écrans 4K, ultra-wide)
Cas d'usage idéal :
- 🖥️ Page d'accueil navigateur sur grand écran
- 📺 Dashboard TV/homelab affiché en permanence sur un écran mural
- 🧪 Public cible « power users » : on veut la liste, pas la déco
Différence avec [[app-glance]] : Glance verticalise en colonnes, Mafl horizontalise en une ligne.
Différence avec [[app-dashy]] : Dashy = riche et configurable, Mafl = minimal et rapide.
Limites assumées : pas de widgets, pas de météo, pas de monitoring — c'est un lanceur, pas un portail d'information.
Installation
Via Docker (recommandé)
# docker-compose.yml
services:
mafl:
image: hhftechnology/mafl:latest
container_name: mafl
restart: unless-stopped
ports:
- "3000:3000"
volumes:
- ./config.yaml:/app/config.yaml:ro
environment:
- TZ=Europe/Paris
labels:
- "traefik.enable=true"
- "traefik.http.routers.mafl.rule=Host(`mafl.example.com`)"
- "traefik.http.routers.mafl.entrypoints=websecure"
- "traefik.http.routers.mafl.tls.certresolver=letsencrypt"
Installation manuelle
git clone https://github.com/hhftechnology/Mafl.git cd Mafl npm install npm run build npm start
Prérequis : Node.js 18+, fichier
config.yamlà la racine.
Configuration
- Écrire
config.yaml: liste des services (name,url,icon,category). - Choisir le mode d'icônes : URL externe, favicon auto, ou icône Lucide locale.
- Définir un thème : couleurs de fond, accent, typo.
- Optionnel : grouper les services en sections (
Work,Perso,Smart Home). - Définir comme page d'accueil navigateur :
chrome://settings→ onglet « Au démarrage ».
Exemple de config.yaml
title: Mon Homelab
theme: dark
services:
- name: Traefik
url: https://traefik.example.com
icon: https://.../traefik.png
- name: Portainer
url: https://portainer.example.com
- name: Grafana
url: https://grafana.example.com
Alternatives
- [[app-glance]] — Widgets read-only, multi-pages, vertical
- [[app-dashy]] — Dashboard complet, riche, vertical
- [[app-homepage]] — Moderne, services + bookmarks + monitoring
- [[app-heimdall]] — Léger, mature, vertical
- [[app-dashlit]] — Concurrent minimaliste (autre fiche du batch)
Sécurité
- 🔐 Reverse-proxy + auth : Mafl n'a pas d'authentification native, à protéger via [[app-traefik]] + Authelia/Authentik.
- 📁
config.yamlsensible : contient la liste de TOUS les services internes — ne pas le versionner en public. - 🌐 Pas d'API publique exposée : l'app reste un portail read-only, surface d'attaque très faible.
- 🛡️ Montage en
ro: le fichier de config peut être monté en lecture seule.
Ressources
- GitHub — hhftechnology/Mafl
- selfh.st — Apps Dashboard
- Démo en ligne (selon disponibilité)
