- Show software version under site title - Fix background stopping on very wide screens (move gradient to body) - Validate Remote-User header value to avoid showing placeholder when not authenticated - Toggle login/logout button based on auth state via login_url config - Bump version to 0.3.0
6 KiB
Configuration de Sochboard
Structure générale
site:
# Informations du site
theme:
# Apparence
authentication:
# Authentification (optionnel)
sections:
# Liste des sections et liens
site
| Champ | Requis | Type | Défaut | Description |
|---|---|---|---|---|
name |
Oui | chaîne | — | Nom du site (ex: "Soch Family") |
title |
Oui | chaîne | — | Sous-titre affiché sous le nom |
description |
Non | chaîne | — | Texte optionnel dans le header |
favicon |
Non | chaîne | — | URL ou chemin du favicon |
logoUrl |
Non | chaîne (URL) | — | URL d'une photo/image qui remplace le "S" |
showFooter |
Non | booléen | true |
false pour masquer le footer |
site:
name: "Soch Family"
title: "Les applications de la famille"
description: "Accès rapide à nos services"
logoUrl: "https://example.com/photo.jpg"
showFooter: true
theme
| Champ | Requis | Type | Défaut | Description |
|---|---|---|---|---|
mode |
Non | "dark" ou "light" |
"dark" |
Mode de couleur |
accent |
Non | chaîne (hex) | "#8b5cf6" |
Couleur d'accent (ex: "#ff0000") |
background |
Non | "gradient" ou "solid" |
"gradient" |
Type d'arrière-plan |
theme:
mode: "dark"
accent: "#8b5cf6"
background: "gradient"
authentication
Configuration optionnelle pour l'authentification via un reverse proxy (Authelia, Authentik, etc.).
| Champ | Requis | Type | Défaut | Description |
|---|---|---|---|---|
logout_url |
Oui | chaîne (URL) | — | URL de déconnexion (ex: "https://auth.example.com/logout") |
login_url |
Non | chaîne (URL) | — | URL de connexion. Un bouton login remplace le bouton logout quand l'utilisateur n'est pas connecté (ex: "https://auth.example.com") |
header_format |
Non | chaîne | "Remote-User" |
Nom de l'en-tête HTTP indiquant que l'utilisateur est connecté |
username |
Non | chaîne | — | Nom de l'en-tête HTTP contenant le nom d'utilisateur (ex: "Remote-Name"). Affiche "Hi {valeur}" dans le header. |
header_user |
Non | chaîne | — | Nom de l'en-tête HTTP pour filtrer par utilisateur (ex: "Remote-User") |
header_group |
Non | chaîne | — | Nom de l'en-tête HTTP pour filtrer par groupe (ex: "Remote-Groups") |
Quand l'en-tête défini par header_format est présent avec une valeur valide (non vide, sans placeholder non résolu), un bouton de déconnexion apparaît à droite du bouton thème. Sinon, si login_url est défini, un bouton de connexion est affiché à la place.
authentication:
logout_url: "https://auth.example.com/logout"
login_url: "https://auth.example.com"
header_format: "Remote-User"
sections
Tableau de sections. Chaque section contient :
| Champ | Requis | Type | Défaut | Description |
|---|---|---|---|---|
id |
Oui | chaîne | — | Identifiant unique |
title |
Oui | chaîne | — | Titre affiché |
description |
Non | chaîne | — | Texte sous le titre |
cardLayout |
Non | "horizontal" ou "vertical" |
"horizontal" |
Disposition des cartes dans la section |
links |
Non | tableau | [] |
Liste des liens |
visible_by_user |
Non | chaîne | — | Nom d'utilisateur requis pour voir cette section |
visible_by_group |
Non | chaîne | — | Groupe requis pour voir cette section |
sections:
- id: "global"
title: "Global"
description: "Tous les services"
cardLayout: "horizontal"
links: []
links
Tableau de liens. Chaque lien contient :
| Champ | Requis | Type | Défaut | Description |
|---|---|---|---|---|
id |
Oui | chaîne | — | Identifiant unique |
name |
Oui | chaîne | — | Nom affiché |
description |
Non | chaîne | — | Description sous le nom |
url |
Oui | chaîne (URL) | — | Lien de l'application |
icon |
Oui | chaîne | — | Nom de l'icône Lucide |
iconUrl |
Non | chaîne (URL) | — | URL d'une image personnalisée (remplace icon) |
color |
Non | chaîne (hex) | — | Couleur d'accent (ex: "#2daae1") |
openInNewTab |
Non | booléen | true |
false pour ouvrir dans le même onglet |
visible_by_user |
Non | chaîne | — | Nom d'utilisateur requis pour voir ce lien |
visible_by_group |
Non | chaîne | — | Groupe requis pour voir ce lien |
links:
- id: "nextcloud"
name: "Nextcloud"
description: "Fichiers et documents"
url: "https://cloud.example.com"
icon: "Cloud"
iconUrl: "https://example.com/nextcloud-icon.svg"
color: "#2daae1"
openInNewTab: false
Icônes Lucide disponibles
Cloud Film Music Gamepad2 Router
Server House BookOpen Calendar Mail
Shield Settings Globe ExternalLink
Si le nom de l'icône est inconnu, ExternalLink est utilisé par défaut.
Si iconUrl est fourni, l'URL est prioritaire et icon sert uniquement de fallback.
Des icônes pour les applications self-hostées sont disponibles sur dashboardicons.com.
Format CDN : https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/<nom>.svg
Exemple complet
site:
name: "Soch Family"
title: "Mes applis"
logoUrl: "https://example.com/logo.png"
showFooter: false
theme:
mode: "dark"
accent: "#8b5cf6"
background: "gradient"
authentication:
logout_url: "https://auth.example.com/logout"
header_format: "Remote-User"
sections:
- id: "services"
title: "Services"
cardLayout: "horizontal"
links:
- id: "nextcloud"
name: "Nextcloud"
url: "https://cloud.example.com"
icon: "Cloud"
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/nextcloud.svg"
color: "#2daae1"
openInNewTab: true
- id: "admin"
title: "Administration"
cardLayout: "vertical"
links:
- id: "mon-app"
name: "Mon App"
url: "https://app.example.com"
icon: "Globe"
iconUrl: "https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/home-assistant.svg"
openInNewTab: false