feat: integrate all real Nginx Proxy Manager domains (v4.0.0)

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
klemensandCursor committed 2026-10-22 00:45:48 +02:00
1 parent 205337f5c8
commit 788d714bb0
2 files changed
+510 -278

No files matched your search

+255 -139
View File
@@ -1,5 +1,5 @@
{ {
"version": "3.0.0", "version": "4.0.0",
"dockTileIds": [ "dockTileIds": [
"nextcloud", "nextcloud",
"dockge", "dockge",
@@ -8,12 +8,12 @@
"open-webui", "open-webui",
"vaultwarden" "vaultwarden"
], ],
"quickNote": "Bienvenue sur Home OS (*.lafabriquedesgenies.be). Cliquez sur « Éditer » pour ajuster n'importe quelle URL ou sous-domaine à la volée.", "quickNote": "Bienvenue sur Home OS. Tous les sous-domaines Nginx Proxy Manager (*.lafabriquedesgenies.be, creaprof.be, lastminute-activities.com) sont synchronisés.",
"categories": [ "categories": [
{ {
"id": "infrastructure", "id": "infrastructure",
"name": "Infrastructure & Serveur", "name": "Infrastructure & Serveur",
"subtitle": "Administration système, conteneurs Docker, sauvegardes & réseau", "subtitle": "Administration système, Docker, Proxy SSL, Zigbee & Réseau",
"icon": "Server", "icon": "Server",
"tabs": [ "tabs": [
{ {
@@ -23,7 +23,7 @@
{ {
"id": "dockge", "id": "dockge",
"title": "Dockge", "title": "Dockge",
"description": "Gestionnaire Docker Compose", "description": "Gestionnaire de stacks Docker Compose",
"url": "https://dockge.lafabriquedesgenies.be", "url": "https://dockge.lafabriquedesgenies.be",
"icon": "Terminal", "icon": "Terminal",
"size": "2x1", "size": "2x1",
@@ -43,21 +43,21 @@
"openBehavior": "external" "openBehavior": "external"
}, },
{ {
"id": "duplicati", "id": "admin-db",
"title": "Duplicati", "title": "Admin / Base SQL",
"description": "Sauvegardes du serveur", "description": "Administration & Gestionnaire SQL (admin)",
"url": "https://backup.lafabriquedesgenies.be", "url": "https://admin.lafabriquedesgenies.be",
"icon": "Archive", "icon": "Database",
"size": "1x1", "size": "1x1",
"badge": "Backup", "badge": "Admin",
"accentColor": "sky", "accentColor": "amber",
"openBehavior": "external" "openBehavior": "external"
}, },
{ {
"id": "speedtest", "id": "speedtest",
"title": "Speedtest", "title": "Speedtest",
"description": "Surveillance débit réseau", "description": "Surveillance débit réseau (speed)",
"url": "https://speedtest.lafabriquedesgenies.be", "url": "https://speed.lafabriquedesgenies.be",
"icon": "Activity", "icon": "Activity",
"size": "1x1", "size": "1x1",
"badge": "Réseau", "badge": "Réseau",
@@ -65,35 +65,35 @@
"openBehavior": "external" "openBehavior": "external"
}, },
{ {
"id": "adminer", "id": "zigbee2mqtt",
"title": "Adminer", "title": "Zigbee2MQTT",
"description": "Gestionnaire bases SQL", "description": "Pont Zigbee & appareils connectés",
"url": "https://db.lafabriquedesgenies.be", "url": "https://zigbee.lafabriquedesgenies.be",
"icon": "Database", "icon": "Radar",
"size": "1x1", "size": "1x1",
"badge": "SQL", "badge": "Zigbee",
"accentColor": "amber", "accentColor": "amber",
"openBehavior": "external" "openBehavior": "external"
}, },
{ {
"id": "adguard-home", "id": "home-portal",
"title": "AdGuard Home", "title": "Home / Domotique",
"description": "Filtrage DNS & Antipub", "description": "Portail Home / Home Assistant (home)",
"url": "https://adguard.lafabriquedesgenies.be", "url": "https://home.lafabriquedesgenies.be",
"icon": "ShieldCheck", "icon": "Home",
"size": "1x1", "size": "1x1",
"badge": "DNS", "badge": "Home",
"accentColor": "teal", "accentColor": "sky",
"openBehavior": "external" "openBehavior": "external"
}, },
{ {
"id": "watchtower", "id": "start-portal",
"title": "Watchtower", "title": "Start Portal",
"description": "Mises à jour automatiques", "description": "Page d'accueil Start (start)",
"url": "https://dockge.lafabriquedesgenies.be", "url": "https://start.lafabriquedesgenies.be",
"icon": "RefreshCw", "icon": "LayoutGrid",
"size": "1x1", "size": "1x1",
"badge": "Daemon Auto", "badge": "Portail",
"accentColor": "violet", "accentColor": "violet",
"openBehavior": "external" "openBehavior": "external"
} }
@@ -103,19 +103,19 @@
}, },
{ {
"id": "private-security", "id": "private-security",
"name": "Privé & Sécurité", "name": "Privé & Bureautique",
"subtitle": "Cloud personnel, mots de passe, documents, notes & domotique", "subtitle": "Nextcloud (Word/Excel), Google Docs/Drive, Coffre-fort, PDF & Notes",
"icon": "ShieldCheck", "icon": "ShieldCheck",
"tabs": [ "tabs": [
{ {
"id": "private-main", "id": "private-main",
"label": "Espace Privé", "label": "Cloud & Sécurité",
"tiles": [ "tiles": [
{ {
"id": "nextcloud", "id": "nextcloud",
"title": "Nextcloud", "title": "Nextcloud",
"description": "Fichiers & Drive Cloud", "description": "Fichiers, Drive Cloud & Bureautique Word/Excel (cloud)",
"url": "https://nc.lafabriquedesgenies.be", "url": "https://cloud.lafabriquedesgenies.be",
"icon": "Cloud", "icon": "Cloud",
"size": "2x1", "size": "2x1",
"badge": "Cloud", "badge": "Cloud",
@@ -125,7 +125,7 @@
{ {
"id": "vaultwarden", "id": "vaultwarden",
"title": "Vaultwarden", "title": "Vaultwarden",
"description": "Gestionnaire de mots de passe", "description": "Gestionnaire de mots de passe chiffré",
"url": "https://vault.lafabriquedesgenies.be", "url": "https://vault.lafabriquedesgenies.be",
"icon": "Key", "icon": "Key",
"size": "1x1", "size": "1x1",
@@ -133,28 +133,6 @@
"accentColor": "amber", "accentColor": "amber",
"openBehavior": "external" "openBehavior": "external"
}, },
{
"id": "paperless-ngx",
"title": "Paperless-ngx",
"description": "GED & Archivage intelligent",
"url": "https://paperless.lafabriquedesgenies.be",
"icon": "FileText",
"size": "1x1",
"badge": "GED",
"accentColor": "emerald",
"openBehavior": "external"
},
{
"id": "wikijs",
"title": "Wiki.js",
"description": "Base de connaissances & notes",
"url": "https://wiki.lafabriquedesgenies.be",
"icon": "BookOpen",
"size": "1x1",
"badge": "Wiki",
"accentColor": "indigo",
"openBehavior": "external"
},
{ {
"id": "stirling-pdf", "id": "stirling-pdf",
"title": "Stirling PDF", "title": "Stirling PDF",
@@ -167,15 +145,59 @@
"openBehavior": "external" "openBehavior": "external"
}, },
{ {
"id": "home-assistant", "id": "wikijs",
"title": "Home Assistant", "title": "Wiki.js",
"description": "Domotique de la maison", "description": "Base de connaissances & documentation",
"url": "https://hass.lafabriquedesgenies.be", "url": "https://wiki.lafabriquedesgenies.be",
"icon": "Home", "icon": "BookOpen",
"size": "2x1", "size": "1x1",
"badge": "Domotique", "badge": "Wiki",
"accentColor": "cyan", "accentColor": "indigo",
"openBehavior": "external" "openBehavior": "external"
},
{
"id": "paperless-ai",
"title": "Paperless AI",
"description": "GED & Archivage intelligent assisté par IA",
"url": "https://paperless-ai.lafabriquedesgenies.be",
"icon": "FileText",
"size": "1x1",
"badge": "GED IA",
"accentColor": "emerald",
"openBehavior": "external"
},
{
"id": "matrix",
"title": "Matrix",
"description": "Messagerie instantanée fédérée & chiffrée",
"url": "https://matrix.lafabriquedesgenies.be",
"icon": "Mail",
"size": "1x1",
"badge": "Chat",
"accentColor": "teal",
"openBehavior": "external"
},
{
"id": "google-docs",
"title": "Google Docs",
"description": "Travaux d'école et rédaction collaborative",
"url": "https://docs.google.com",
"icon": "FileSpreadsheet",
"size": "1x1",
"badge": "École",
"accentColor": "blue",
"openBehavior": "popup"
},
{
"id": "google-drive",
"title": "Google Drive",
"description": "Stockage des cours et fichiers scolaires",
"url": "https://drive.google.com",
"icon": "HardDrive",
"size": "1x1",
"badge": "Drive",
"accentColor": "amber",
"openBehavior": "popup"
} }
] ]
} }
@@ -184,7 +206,7 @@
{ {
"id": "multimedia", "id": "multimedia",
"name": "Multimédia & Médias", "name": "Multimédia & Médias",
"subtitle": "Streaming vidéo, livres audio, musique & téléchargements", "subtitle": "Jellyfin (media), Audiobookshelf (book), Sonarr, Radarr (radar) & Torrent (bit)",
"icon": "Film", "icon": "Film",
"tabs": [ "tabs": [
{ {
@@ -193,9 +215,9 @@
"tiles": [ "tiles": [
{ {
"id": "jellyfin", "id": "jellyfin",
"title": "Jellyfin", "title": "Jellyfin (Media)",
"description": "Streaming Films & Séries", "description": "Streaming Films, Séries & Médias",
"url": "https://jellyfin.lafabriquedesgenies.be", "url": "https://media.lafabriquedesgenies.be",
"icon": "Film", "icon": "Film",
"size": "2x1", "size": "2x1",
"badge": "Streaming", "badge": "Streaming",
@@ -205,8 +227,8 @@
{ {
"id": "audiobookshelf", "id": "audiobookshelf",
"title": "Audiobookshelf", "title": "Audiobookshelf",
"description": "Livres audio & Podcasts", "description": "Livres audio & Podcasts (book)",
"url": "https://audiobookshelf.lafabriquedesgenies.be", "url": "https://book.lafabriquedesgenies.be",
"icon": "Headphones", "icon": "Headphones",
"size": "1x1", "size": "1x1",
"badge": "Audio", "badge": "Audio",
@@ -216,7 +238,7 @@
{ {
"id": "sonarr", "id": "sonarr",
"title": "Sonarr", "title": "Sonarr",
"description": "Suivi & gestion des séries", "description": "Suivi & gestion automatique des séries",
"url": "https://sonarr.lafabriquedesgenies.be", "url": "https://sonarr.lafabriquedesgenies.be",
"icon": "Tv", "icon": "Tv",
"size": "1x1", "size": "1x1",
@@ -227,8 +249,8 @@
{ {
"id": "radarr", "id": "radarr",
"title": "Radarr", "title": "Radarr",
"description": "Suivi & gestion des films", "description": "Suivi & gestion automatique des films (radar)",
"url": "https://radarr.lafabriquedesgenies.be", "url": "https://radar.lafabriquedesgenies.be",
"icon": "Video", "icon": "Video",
"size": "1x1", "size": "1x1",
"badge": "Films", "badge": "Films",
@@ -238,35 +260,13 @@
{ {
"id": "qbittorrent", "id": "qbittorrent",
"title": "qBittorrent", "title": "qBittorrent",
"description": "Téléchargements VPN (Gluetun)", "description": "Téléchargements BitTorrent VPN (bit)",
"url": "https://torrent.lafabriquedesgenies.be", "url": "https://bit.lafabriquedesgenies.be",
"icon": "DownloadCloud", "icon": "DownloadCloud",
"size": "1x1", "size": "2x1",
"badge": "VPN Gluetun", "badge": "Torrent VPN",
"accentColor": "blue", "accentColor": "blue",
"openBehavior": "external" "openBehavior": "external"
},
{
"id": "deemix",
"title": "Deemix",
"description": "Téléchargement Musique",
"url": "https://deemix.lafabriquedesgenies.be",
"icon": "Music",
"size": "1x1",
"badge": "Musique",
"accentColor": "pink",
"openBehavior": "external"
},
{
"id": "sabnzbd",
"title": "SABnzbd",
"description": "Client Usenet",
"url": "https://sabnzbd.lafabriquedesgenies.be",
"icon": "HardDriveDownload",
"size": "1x1",
"badge": "Usenet",
"accentColor": "emerald",
"openBehavior": "external"
} }
] ]
} }
@@ -275,17 +275,17 @@
{ {
"id": "projects-work", "id": "projects-work",
"name": "Projets & Travail", "name": "Projets & Travail",
"subtitle": "Forge Git, applications La Fabrique des Génies & outils métiers", "subtitle": "Gitea, Écosystème pédagogique, CreaProf, Ubicraft & Last Minute Activities",
"icon": "Briefcase", "icon": "Briefcase",
"tabs": [ "tabs": [
{ {
"id": "work-main", "id": "work-apps",
"label": "Applications & Projets", "label": "Projets & Écoles",
"tiles": [ "tiles": [
{ {
"id": "gitea", "id": "gitea",
"title": "Gitea", "title": "Gitea",
"description": "Dépôts de code Git", "description": "Serveur Git & dépôts de code",
"url": "https://git.lafabriquedesgenies.be", "url": "https://git.lafabriquedesgenies.be",
"icon": "GitBranch", "icon": "GitBranch",
"size": "2x1", "size": "2x1",
@@ -294,9 +294,9 @@
"openBehavior": "external" "openBehavior": "external"
}, },
{ {
"id": "wordpress-lafabrique", "id": "lafabrique-site",
"title": "WordPress La Fabrique", "title": "La Fabrique des Génies",
"description": "Site officiel La Fabrique", "description": "Site principal lafabriquedesgenies.be",
"url": "https://lafabriquedesgenies.be", "url": "https://lafabriquedesgenies.be",
"icon": "Globe", "icon": "Globe",
"size": "1x1", "size": "1x1",
@@ -305,58 +305,141 @@
"openBehavior": "external" "openBehavior": "external"
}, },
{ {
"id": "teacher-app", "id": "cours-platform",
"title": "Teacher App", "title": "Plateforme Cours",
"description": "Plateforme pédagogique", "description": "Espace de cours et supports pédagogiques",
"url": "https://teacher.lafabriquedesgenies.be", "url": "https://cours.lafabriquedesgenies.be",
"icon": "GraduationCap", "icon": "GraduationCap",
"size": "1x1", "size": "1x1",
"badge": "Pédagogie", "badge": "Cours",
"accentColor": "indigo", "accentColor": "indigo",
"openBehavior": "external" "openBehavior": "external"
}, },
{
"id": "teacher-app",
"title": "Teacher App",
"description": "Application enseignant",
"url": "https://teacher.lafabriquedesgenies.be",
"icon": "BookOpen",
"size": "1x1",
"badge": "Teacher",
"accentColor": "violet",
"openBehavior": "external"
},
{
"id": "teacher-cockpit",
"title": "Teacher Cockpit",
"description": "Tableau de bord & archives Cockpit",
"url": "https://cockpit.lafabriquedesgenies.be",
"icon": "Cpu",
"size": "1x1",
"badge": "Cockpit",
"accentColor": "sky",
"openBehavior": "external"
},
{ {
"id": "creaprof", "id": "creaprof",
"title": "CreaProf", "title": "CreaProf",
"description": "Outil création enseignant", "description": "Outil de création pédagogique (creaprof.be)",
"url": "https://creaprof.lafabriquedesgenies.be", "url": "https://creaprof.be",
"icon": "PenTool", "icon": "PenTool",
"size": "1x1", "size": "1x1",
"badge": "Création", "badge": "CreaProf",
"accentColor": "violet", "accentColor": "purple",
"openBehavior": "external" "openBehavior": "external"
}, },
{ {
"id": "ubicraft", "id": "ubicraft-main",
"title": "Ubicraft", "title": "Ubicraft (La Fabrique)",
"description": "Application métier", "description": "Instance Ubicraft sur lafabriquedesgenies.be",
"url": "https://ubicraft.lafabriquedesgenies.be", "url": "https://ubicraft.lafabriquedesgenies.be",
"icon": "LayoutGrid", "icon": "LayoutGrid",
"size": "1x1", "size": "1x1",
"badge": "Métier", "badge": "Ubicraft",
"accentColor": "cyan", "accentColor": "cyan",
"openBehavior": "external" "openBehavior": "external"
}, },
{ {
"id": "lma-v2", "id": "ubicraft-creaprof",
"title": "LMA V2", "title": "Ubicraft (CreaProf)",
"description": "Plateforme Last Minute Activities", "description": "Instance Ubicraft sur ubicraft.creaprof.be",
"url": "https://lma.lafabriquedesgenies.be", "url": "https://ubicraft.creaprof.be",
"icon": "Briefcase", "icon": "LayoutGrid",
"size": "1x1", "size": "1x1",
"badge": "LMA", "badge": "CreaProf",
"accentColor": "amber", "accentColor": "teal",
"openBehavior": "external" "openBehavior": "external"
}, },
{ {
"id": "coo-app", "id": "coo-app",
"title": "Coo App", "title": "Coo App",
"description": "Application de gestion", "description": "Application de gestion Coo",
"url": "https://coo.lafabriquedesgenies.be", "url": "https://coo.lafabriquedesgenies.be",
"icon": "Layers", "icon": "Layers",
"size": "1x1", "size": "1x1",
"badge": "Gestion", "badge": "Coo",
"accentColor": "teal", "accentColor": "emerald",
"openBehavior": "external"
},
{
"id": "mottet-connect",
"title": "Mottet Connect",
"description": "Portail Mottet Connect",
"url": "https://mottet.lafabriquedesgenies.be",
"icon": "Network",
"size": "1x1",
"badge": "Mottet",
"accentColor": "amber",
"openBehavior": "external"
}
]
},
{
"id": "lma-sites",
"label": "Last Minute Activities",
"tiles": [
{
"id": "lma-global",
"title": "Last Minute Activities (Global)",
"description": "Portail principal www.lastminute-activities.com",
"url": "https://lastminute-activities.com",
"icon": "Globe",
"size": "2x1",
"badge": "Principal",
"accentColor": "amber",
"openBehavior": "external"
},
{
"id": "lma-fr",
"title": "LMA — Français",
"description": "Version francophone (fr.lastminute-activities.com)",
"url": "https://fr.lastminute-activities.com",
"icon": "Briefcase",
"size": "1x1",
"badge": "FR",
"accentColor": "blue",
"openBehavior": "external"
},
{
"id": "lma-nl",
"title": "LMA — Nederlands",
"description": "Version néerlandophone (nl.lastminute-activities.com)",
"url": "https://nl.lastminute-activities.com",
"icon": "Briefcase",
"size": "1x1",
"badge": "NL",
"accentColor": "amber",
"openBehavior": "external"
},
{
"id": "lma-en",
"title": "LMA — English",
"description": "Version anglophone (en.lastminute-activities.com)",
"url": "https://en.lastminute-activities.com",
"icon": "Briefcase",
"size": "1x1",
"badge": "EN",
"accentColor": "emerald",
"openBehavior": "external" "openBehavior": "external"
} }
] ]
@@ -366,17 +449,17 @@
{ {
"id": "ai", "id": "ai",
"name": "Intelligence Artificielle", "name": "Intelligence Artificielle",
"subtitle": "Modèles LLM auto-hébergés & Assistant Google Gemini intégré", "subtitle": "Open WebUI, AIE, OpenClaw, Paperless AI & Google Gemini",
"icon": "Sparkles", "icon": "Sparkles",
"tabs": [ "tabs": [
{ {
"id": "ai-main", "id": "ai-main",
"label": "Assistants IA", "label": "Plateformes IA & Agents",
"tiles": [ "tiles": [
{ {
"id": "open-webui", "id": "open-webui",
"title": "Open WebUI", "title": "Open WebUI (AI)",
"description": "Interface modèles LLM", "description": "Interface principale des modèles LLM",
"url": "https://ai.lafabriquedesgenies.be", "url": "https://ai.lafabriquedesgenies.be",
"icon": "Bot", "icon": "Bot",
"size": "2x1", "size": "2x1",
@@ -384,13 +467,46 @@
"accentColor": "emerald", "accentColor": "emerald",
"openBehavior": "external" "openBehavior": "external"
}, },
{
"id": "aie-platform",
"title": "AIE",
"description": "Service IA dédié (aie.lafabriquedesgenies.be)",
"url": "https://aie.lafabriquedesgenies.be",
"icon": "Sparkles",
"size": "1x1",
"badge": "AIE",
"accentColor": "violet",
"openBehavior": "external"
},
{
"id": "opencclaw",
"title": "OpenClaw",
"description": "Agent autonome OpenClaw",
"url": "https://opencclaw.lafabriquedesgenies.be",
"icon": "Cpu",
"size": "1x1",
"badge": "Agent",
"accentColor": "cyan",
"openBehavior": "external"
},
{
"id": "paperless-ai-shortcut",
"title": "Paperless AI",
"description": "Analyse documentaire assistée par IA",
"url": "https://paperless-ai.lafabriquedesgenies.be",
"icon": "FileText",
"size": "1x1",
"badge": "Docs IA",
"accentColor": "teal",
"openBehavior": "external"
},
{ {
"id": "google-gemini", "id": "google-gemini",
"title": "Google Gemini", "title": "Google Gemini",
"description": "Assistant IA intégré", "description": "Assistant IA intégré dans l'Omnibox Home OS",
"url": "#gemini", "url": "#gemini",
"icon": "Sparkles", "icon": "Sparkles",
"size": "2x1", "size": "1x1",
"badge": "Omnibox IA", "badge": "Omnibox IA",
"accentColor": "blue", "accentColor": "blue",
"openBehavior": "external" "openBehavior": "external"
+255 -139
View File
@@ -1,7 +1,7 @@
import { DashboardData } from "@/types/dashboard"; import { DashboardData } from "@/types/dashboard";
export const initialDashboardData: DashboardData = { export const initialDashboardData: DashboardData = {
version: "3.0.0", version: "4.0.0",
dockTileIds: [ dockTileIds: [
"nextcloud", "nextcloud",
"dockge", "dockge",
@@ -11,12 +11,12 @@ export const initialDashboardData: DashboardData = {
"vaultwarden", "vaultwarden",
], ],
quickNote: quickNote:
"Bienvenue sur Home OS (*.lafabriquedesgenies.be). Cliquez sur « Éditer » pour ajuster n'importe quelle URL ou sous-domaine à la volée.", "Bienvenue sur Home OS. Tous les sous-domaines Nginx Proxy Manager (*.lafabriquedesgenies.be, creaprof.be, lastminute-activities.com) sont synchronisés.",
categories: [ categories: [
{ {
id: "infrastructure", id: "infrastructure",
name: "Infrastructure & Serveur", name: "Infrastructure & Serveur",
subtitle: "Administration système, conteneurs Docker, sauvegardes & réseau", subtitle: "Administration système, Docker, Proxy SSL, Zigbee & Réseau",
icon: "Server", icon: "Server",
tabs: [ tabs: [
{ {
@@ -26,7 +26,7 @@ export const initialDashboardData: DashboardData = {
{ {
id: "dockge", id: "dockge",
title: "Dockge", title: "Dockge",
description: "Gestionnaire Docker Compose", description: "Gestionnaire de stacks Docker Compose",
url: "https://dockge.lafabriquedesgenies.be", url: "https://dockge.lafabriquedesgenies.be",
icon: "Terminal", icon: "Terminal",
size: "2x1", size: "2x1",
@@ -46,21 +46,21 @@ export const initialDashboardData: DashboardData = {
openBehavior: "external", openBehavior: "external",
}, },
{ {
id: "duplicati", id: "admin-db",
title: "Duplicati", title: "Admin / Base SQL",
description: "Sauvegardes du serveur", description: "Administration & Gestionnaire SQL (admin)",
url: "https://backup.lafabriquedesgenies.be", url: "https://admin.lafabriquedesgenies.be",
icon: "Archive", icon: "Database",
size: "1x1", size: "1x1",
badge: "Backup", badge: "Admin",
accentColor: "sky", accentColor: "amber",
openBehavior: "external", openBehavior: "external",
}, },
{ {
id: "speedtest", id: "speedtest",
title: "Speedtest", title: "Speedtest",
description: "Surveillance débit réseau", description: "Surveillance débit réseau (speed)",
url: "https://speedtest.lafabriquedesgenies.be", url: "https://speed.lafabriquedesgenies.be",
icon: "Activity", icon: "Activity",
size: "1x1", size: "1x1",
badge: "Réseau", badge: "Réseau",
@@ -68,35 +68,35 @@ export const initialDashboardData: DashboardData = {
openBehavior: "external", openBehavior: "external",
}, },
{ {
id: "adminer", id: "zigbee2mqtt",
title: "Adminer", title: "Zigbee2MQTT",
description: "Gestionnaire bases SQL", description: "Pont Zigbee & appareils connectés",
url: "https://db.lafabriquedesgenies.be", url: "https://zigbee.lafabriquedesgenies.be",
icon: "Database", icon: "Radar",
size: "1x1", size: "1x1",
badge: "SQL", badge: "Zigbee",
accentColor: "amber", accentColor: "amber",
openBehavior: "external", openBehavior: "external",
}, },
{ {
id: "adguard-home", id: "home-portal",
title: "AdGuard Home", title: "Home / Domotique",
description: "Filtrage DNS & Antipub", description: "Portail Home / Home Assistant (home)",
url: "https://adguard.lafabriquedesgenies.be", url: "https://home.lafabriquedesgenies.be",
icon: "ShieldCheck", icon: "Home",
size: "1x1", size: "1x1",
badge: "DNS", badge: "Home",
accentColor: "teal", accentColor: "sky",
openBehavior: "external", openBehavior: "external",
}, },
{ {
id: "watchtower", id: "start-portal",
title: "Watchtower", title: "Start Portal",
description: "Mises à jour automatiques", description: "Page d'accueil Start (start)",
url: "https://dockge.lafabriquedesgenies.be", url: "https://start.lafabriquedesgenies.be",
icon: "RefreshCw", icon: "LayoutGrid",
size: "1x1", size: "1x1",
badge: "Daemon Auto", badge: "Portail",
accentColor: "violet", accentColor: "violet",
openBehavior: "external", openBehavior: "external",
}, },
@@ -106,19 +106,19 @@ export const initialDashboardData: DashboardData = {
}, },
{ {
id: "private-security", id: "private-security",
name: "Privé & Sécurité", name: "Privé & Bureautique",
subtitle: "Cloud personnel, mots de passe, documents, notes & domotique", subtitle: "Nextcloud (Word/Excel), Google Docs/Drive, Coffre-fort, PDF & Notes",
icon: "ShieldCheck", icon: "ShieldCheck",
tabs: [ tabs: [
{ {
id: "private-main", id: "private-main",
label: "Espace Privé", label: "Cloud & Sécurité",
tiles: [ tiles: [
{ {
id: "nextcloud", id: "nextcloud",
title: "Nextcloud", title: "Nextcloud",
description: "Fichiers & Drive Cloud", description: "Fichiers, Drive Cloud & Bureautique Word/Excel (cloud)",
url: "https://nc.lafabriquedesgenies.be", url: "https://cloud.lafabriquedesgenies.be",
icon: "Cloud", icon: "Cloud",
size: "2x1", size: "2x1",
badge: "Cloud", badge: "Cloud",
@@ -128,7 +128,7 @@ export const initialDashboardData: DashboardData = {
{ {
id: "vaultwarden", id: "vaultwarden",
title: "Vaultwarden", title: "Vaultwarden",
description: "Gestionnaire de mots de passe", description: "Gestionnaire de mots de passe chiffré",
url: "https://vault.lafabriquedesgenies.be", url: "https://vault.lafabriquedesgenies.be",
icon: "Key", icon: "Key",
size: "1x1", size: "1x1",
@@ -136,28 +136,6 @@ export const initialDashboardData: DashboardData = {
accentColor: "amber", accentColor: "amber",
openBehavior: "external", openBehavior: "external",
}, },
{
id: "paperless-ngx",
title: "Paperless-ngx",
description: "GED & Archivage intelligent",
url: "https://paperless.lafabriquedesgenies.be",
icon: "FileText",
size: "1x1",
badge: "GED",
accentColor: "emerald",
openBehavior: "external",
},
{
id: "wikijs",
title: "Wiki.js",
description: "Base de connaissances & notes",
url: "https://wiki.lafabriquedesgenies.be",
icon: "BookOpen",
size: "1x1",
badge: "Wiki",
accentColor: "indigo",
openBehavior: "external",
},
{ {
id: "stirling-pdf", id: "stirling-pdf",
title: "Stirling PDF", title: "Stirling PDF",
@@ -170,16 +148,60 @@ export const initialDashboardData: DashboardData = {
openBehavior: "external", openBehavior: "external",
}, },
{ {
id: "home-assistant", id: "wikijs",
title: "Home Assistant", title: "Wiki.js",
description: "Domotique de la maison", description: "Base de connaissances & documentation",
url: "https://hass.lafabriquedesgenies.be", url: "https://wiki.lafabriquedesgenies.be",
icon: "Home", icon: "BookOpen",
size: "2x1", size: "1x1",
badge: "Domotique", badge: "Wiki",
accentColor: "cyan", accentColor: "indigo",
openBehavior: "external", openBehavior: "external",
}, },
{
id: "paperless-ai",
title: "Paperless AI",
description: "GED & Archivage intelligent assisté par IA",
url: "https://paperless-ai.lafabriquedesgenies.be",
icon: "FileText",
size: "1x1",
badge: "GED IA",
accentColor: "emerald",
openBehavior: "external",
},
{
id: "matrix",
title: "Matrix",
description: "Messagerie instantanée fédérée & chiffrée",
url: "https://matrix.lafabriquedesgenies.be",
icon: "Mail",
size: "1x1",
badge: "Chat",
accentColor: "teal",
openBehavior: "external",
},
{
id: "google-docs",
title: "Google Docs",
description: "Travaux d'école et rédaction collaborative",
url: "https://docs.google.com",
icon: "FileSpreadsheet",
size: "1x1",
badge: "École",
accentColor: "blue",
openBehavior: "popup",
},
{
id: "google-drive",
title: "Google Drive",
description: "Stockage des cours et fichiers scolaires",
url: "https://drive.google.com",
icon: "HardDrive",
size: "1x1",
badge: "Drive",
accentColor: "amber",
openBehavior: "popup",
},
], ],
}, },
], ],
@@ -187,7 +209,7 @@ export const initialDashboardData: DashboardData = {
{ {
id: "multimedia", id: "multimedia",
name: "Multimédia & Médias", name: "Multimédia & Médias",
subtitle: "Streaming vidéo, livres audio, musique & téléchargements", subtitle: "Jellyfin (media), Audiobookshelf (book), Sonarr, Radarr (radar) & Torrent (bit)",
icon: "Film", icon: "Film",
tabs: [ tabs: [
{ {
@@ -196,9 +218,9 @@ export const initialDashboardData: DashboardData = {
tiles: [ tiles: [
{ {
id: "jellyfin", id: "jellyfin",
title: "Jellyfin", title: "Jellyfin (Media)",
description: "Streaming Films & Séries", description: "Streaming Films, Séries & Médias",
url: "https://jellyfin.lafabriquedesgenies.be", url: "https://media.lafabriquedesgenies.be",
icon: "Film", icon: "Film",
size: "2x1", size: "2x1",
badge: "Streaming", badge: "Streaming",
@@ -208,8 +230,8 @@ export const initialDashboardData: DashboardData = {
{ {
id: "audiobookshelf", id: "audiobookshelf",
title: "Audiobookshelf", title: "Audiobookshelf",
description: "Livres audio & Podcasts", description: "Livres audio & Podcasts (book)",
url: "https://audiobookshelf.lafabriquedesgenies.be", url: "https://book.lafabriquedesgenies.be",
icon: "Headphones", icon: "Headphones",
size: "1x1", size: "1x1",
badge: "Audio", badge: "Audio",
@@ -219,7 +241,7 @@ export const initialDashboardData: DashboardData = {
{ {
id: "sonarr", id: "sonarr",
title: "Sonarr", title: "Sonarr",
description: "Suivi & gestion des séries", description: "Suivi & gestion automatique des séries",
url: "https://sonarr.lafabriquedesgenies.be", url: "https://sonarr.lafabriquedesgenies.be",
icon: "Tv", icon: "Tv",
size: "1x1", size: "1x1",
@@ -230,8 +252,8 @@ export const initialDashboardData: DashboardData = {
{ {
id: "radarr", id: "radarr",
title: "Radarr", title: "Radarr",
description: "Suivi & gestion des films", description: "Suivi & gestion automatique des films (radar)",
url: "https://radarr.lafabriquedesgenies.be", url: "https://radar.lafabriquedesgenies.be",
icon: "Video", icon: "Video",
size: "1x1", size: "1x1",
badge: "Films", badge: "Films",
@@ -241,36 +263,14 @@ export const initialDashboardData: DashboardData = {
{ {
id: "qbittorrent", id: "qbittorrent",
title: "qBittorrent", title: "qBittorrent",
description: "Téléchargements VPN (Gluetun)", description: "Téléchargements BitTorrent VPN (bit)",
url: "https://torrent.lafabriquedesgenies.be", url: "https://bit.lafabriquedesgenies.be",
icon: "DownloadCloud", icon: "DownloadCloud",
size: "1x1", size: "2x1",
badge: "VPN Gluetun", badge: "Torrent VPN",
accentColor: "blue", accentColor: "blue",
openBehavior: "external", openBehavior: "external",
}, },
{
id: "deemix",
title: "Deemix",
description: "Téléchargement Musique",
url: "https://deemix.lafabriquedesgenies.be",
icon: "Music",
size: "1x1",
badge: "Musique",
accentColor: "pink",
openBehavior: "external",
},
{
id: "sabnzbd",
title: "SABnzbd",
description: "Client Usenet",
url: "https://sabnzbd.lafabriquedesgenies.be",
icon: "HardDriveDownload",
size: "1x1",
badge: "Usenet",
accentColor: "emerald",
openBehavior: "external",
},
], ],
}, },
], ],
@@ -278,17 +278,17 @@ export const initialDashboardData: DashboardData = {
{ {
id: "projects-work", id: "projects-work",
name: "Projets & Travail", name: "Projets & Travail",
subtitle: "Forge Git, applications La Fabrique des Génies & outils métiers", subtitle: "Gitea, Écosystème pédagogique, CreaProf, Ubicraft & Last Minute Activities",
icon: "Briefcase", icon: "Briefcase",
tabs: [ tabs: [
{ {
id: "work-main", id: "work-apps",
label: "Applications & Projets", label: "Projets & Écoles",
tiles: [ tiles: [
{ {
id: "gitea", id: "gitea",
title: "Gitea", title: "Gitea",
description: "Dépôts de code Git", description: "Serveur Git & dépôts de code",
url: "https://git.lafabriquedesgenies.be", url: "https://git.lafabriquedesgenies.be",
icon: "GitBranch", icon: "GitBranch",
size: "2x1", size: "2x1",
@@ -297,9 +297,9 @@ export const initialDashboardData: DashboardData = {
openBehavior: "external", openBehavior: "external",
}, },
{ {
id: "wordpress-lafabrique", id: "lafabrique-site",
title: "WordPress La Fabrique", title: "La Fabrique des Génies",
description: "Site officiel La Fabrique", description: "Site principal lafabriquedesgenies.be",
url: "https://lafabriquedesgenies.be", url: "https://lafabriquedesgenies.be",
icon: "Globe", icon: "Globe",
size: "1x1", size: "1x1",
@@ -308,58 +308,141 @@ export const initialDashboardData: DashboardData = {
openBehavior: "external", openBehavior: "external",
}, },
{ {
id: "teacher-app", id: "cours-platform",
title: "Teacher App", title: "Plateforme Cours",
description: "Plateforme pédagogique", description: "Espace de cours et supports pédagogiques",
url: "https://teacher.lafabriquedesgenies.be", url: "https://cours.lafabriquedesgenies.be",
icon: "GraduationCap", icon: "GraduationCap",
size: "1x1", size: "1x1",
badge: "Pédagogie", badge: "Cours",
accentColor: "indigo", accentColor: "indigo",
openBehavior: "external", openBehavior: "external",
}, },
{
id: "teacher-app",
title: "Teacher App",
description: "Application enseignant",
url: "https://teacher.lafabriquedesgenies.be",
icon: "BookOpen",
size: "1x1",
badge: "Teacher",
accentColor: "violet",
openBehavior: "external",
},
{
id: "teacher-cockpit",
title: "Teacher Cockpit",
description: "Tableau de bord & archives Cockpit",
url: "https://cockpit.lafabriquedesgenies.be",
icon: "Cpu",
size: "1x1",
badge: "Cockpit",
accentColor: "sky",
openBehavior: "external",
},
{ {
id: "creaprof", id: "creaprof",
title: "CreaProf", title: "CreaProf",
description: "Outil création enseignant", description: "Outil de création pédagogique (creaprof.be)",
url: "https://creaprof.lafabriquedesgenies.be", url: "https://creaprof.be",
icon: "PenTool", icon: "PenTool",
size: "1x1", size: "1x1",
badge: "Création", badge: "CreaProf",
accentColor: "violet", accentColor: "purple",
openBehavior: "external", openBehavior: "external",
}, },
{ {
id: "ubicraft", id: "ubicraft-main",
title: "Ubicraft", title: "Ubicraft (La Fabrique)",
description: "Application métier", description: "Instance Ubicraft sur lafabriquedesgenies.be",
url: "https://ubicraft.lafabriquedesgenies.be", url: "https://ubicraft.lafabriquedesgenies.be",
icon: "LayoutGrid", icon: "LayoutGrid",
size: "1x1", size: "1x1",
badge: "Métier", badge: "Ubicraft",
accentColor: "cyan", accentColor: "cyan",
openBehavior: "external", openBehavior: "external",
}, },
{ {
id: "lma-v2", id: "ubicraft-creaprof",
title: "LMA V2", title: "Ubicraft (CreaProf)",
description: "Plateforme Last Minute Activities", description: "Instance Ubicraft sur ubicraft.creaprof.be",
url: "https://lma.lafabriquedesgenies.be", url: "https://ubicraft.creaprof.be",
icon: "Briefcase", icon: "LayoutGrid",
size: "1x1", size: "1x1",
badge: "LMA", badge: "CreaProf",
accentColor: "amber", accentColor: "teal",
openBehavior: "external", openBehavior: "external",
}, },
{ {
id: "coo-app", id: "coo-app",
title: "Coo App", title: "Coo App",
description: "Application de gestion", description: "Application de gestion Coo",
url: "https://coo.lafabriquedesgenies.be", url: "https://coo.lafabriquedesgenies.be",
icon: "Layers", icon: "Layers",
size: "1x1", size: "1x1",
badge: "Gestion", badge: "Coo",
accentColor: "teal", accentColor: "emerald",
openBehavior: "external",
},
{
id: "mottet-connect",
title: "Mottet Connect",
description: "Portail Mottet Connect",
url: "https://mottet.lafabriquedesgenies.be",
icon: "Network",
size: "1x1",
badge: "Mottet",
accentColor: "amber",
openBehavior: "external",
},
],
},
{
id: "lma-sites",
label: "Last Minute Activities",
tiles: [
{
id: "lma-global",
title: "Last Minute Activities (Global)",
description: "Portail principal www.lastminute-activities.com",
url: "https://lastminute-activities.com",
icon: "Globe",
size: "2x1",
badge: "Principal",
accentColor: "amber",
openBehavior: "external",
},
{
id: "lma-fr",
title: "LMA — Français",
description: "Version francophone (fr.lastminute-activities.com)",
url: "https://fr.lastminute-activities.com",
icon: "Briefcase",
size: "1x1",
badge: "FR",
accentColor: "blue",
openBehavior: "external",
},
{
id: "lma-nl",
title: "LMA — Nederlands",
description: "Version néerlandophone (nl.lastminute-activities.com)",
url: "https://nl.lastminute-activities.com",
icon: "Briefcase",
size: "1x1",
badge: "NL",
accentColor: "amber",
openBehavior: "external",
},
{
id: "lma-en",
title: "LMA — English",
description: "Version anglophone (en.lastminute-activities.com)",
url: "https://en.lastminute-activities.com",
icon: "Briefcase",
size: "1x1",
badge: "EN",
accentColor: "emerald",
openBehavior: "external", openBehavior: "external",
}, },
], ],
@@ -369,17 +452,17 @@ export const initialDashboardData: DashboardData = {
{ {
id: "ai", id: "ai",
name: "Intelligence Artificielle", name: "Intelligence Artificielle",
subtitle: "Modèles LLM auto-hébergés & Assistant Google Gemini intégré", subtitle: "Open WebUI, AIE, OpenClaw, Paperless AI & Google Gemini",
icon: "Sparkles", icon: "Sparkles",
tabs: [ tabs: [
{ {
id: "ai-main", id: "ai-main",
label: "Assistants IA", label: "Plateformes IA & Agents",
tiles: [ tiles: [
{ {
id: "open-webui", id: "open-webui",
title: "Open WebUI", title: "Open WebUI (AI)",
description: "Interface modèles LLM", description: "Interface principale des modèles LLM",
url: "https://ai.lafabriquedesgenies.be", url: "https://ai.lafabriquedesgenies.be",
icon: "Bot", icon: "Bot",
size: "2x1", size: "2x1",
@@ -387,13 +470,46 @@ export const initialDashboardData: DashboardData = {
accentColor: "emerald", accentColor: "emerald",
openBehavior: "external", openBehavior: "external",
}, },
{
id: "aie-platform",
title: "AIE",
description: "Service IA dédié (aie.lafabriquedesgenies.be)",
url: "https://aie.lafabriquedesgenies.be",
icon: "Sparkles",
size: "1x1",
badge: "AIE",
accentColor: "violet",
openBehavior: "external",
},
{
id: "opencclaw",
title: "OpenClaw",
description: "Agent autonome OpenClaw",
url: "https://opencclaw.lafabriquedesgenies.be",
icon: "Cpu",
size: "1x1",
badge: "Agent",
accentColor: "cyan",
openBehavior: "external",
},
{
id: "paperless-ai-shortcut",
title: "Paperless AI",
description: "Analyse documentaire assistée par IA",
url: "https://paperless-ai.lafabriquedesgenies.be",
icon: "FileText",
size: "1x1",
badge: "Docs IA",
accentColor: "teal",
openBehavior: "external",
},
{ {
id: "google-gemini", id: "google-gemini",
title: "Google Gemini", title: "Google Gemini",
description: "Assistant IA intégré", description: "Assistant IA intégré dans l'Omnibox Home OS",
url: "#gemini", url: "#gemini",
icon: "Sparkles", icon: "Sparkles",
size: "2x1", size: "1x1",
badge: "Omnibox IA", badge: "Omnibox IA",
accentColor: "blue", accentColor: "blue",
openBehavior: "external", openBehavior: "external",