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

4.9 KiB


title: Mafl created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, dashboard, minimaliste, horizontal, terminal-aesthetic] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Dashboard, https://github.com/hhftechnology/Mafl]

📊 Mafl

Dashboard minimaliste horizontal : une barre supérieure façon launcher/terminal, regroupant tous ses services en tuiles discrètes. Look « Hacker News » rencontre les pages d'accueil custom.

📋 Informations Générales

Champ Valeur
Site web
GitHub hhftechnology/Mafl
License MIT
Langage TypeScript (Next.js)
Étoiles GitHub 737
Catégorie cat-dashboard

📝 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

  1. Écrire config.yaml : liste des services (name, url, icon, category).
  2. Choisir le mode d'icônes : URL externe, favicon auto, ou icône Lucide locale.
  3. Définir un thème : couleurs de fond, accent, typo.
  4. Optionnel : grouper les services en sections (Work, Perso, Smart Home).
  5. 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.yaml sensible : 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

🔗 Pages Liées