- Next.js 16 App Router with TypeScript + Tailwind CSS v4 - YAML config read at runtime via server components (force-dynamic) - Zod validation for config schema (site, theme, sections, links) - Dark/light theme with CSS variables and client-side toggle - Dashboard layout: header (logo + title), sections, responsive card grid - Horizontal card layout (icon left, text right) with optional vertical mode - Lucide React icons with fallback, custom iconUrl support for SVG icons - Glassmorphism cards with hover/focus/keyboard accessibility - Mobile responsive: 2 columns on mobile, up to 5 on xl screens - Docker multi-stage build with docker-compose volume for config - Standalone Next.js output for production - CONFIGURATION.md and ROADMAP.md documentation |
||
|---|---|---|
| config | ||
| public | ||
| src | ||
| .dockerignore | ||
| .gitignore | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| CONFIGURATION.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| eslint.config.mjs | ||
| next.config.ts | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.mjs | ||
| README.md | ||
| ROADMAP.md | ||
| tsconfig.json | ||
Sochboard
Dashboard familial pour les applications auto-hébergées.
Démarrage rapide
docker compose up -d
L'application est accessible sur http://localhost:3000.
Configuration
La configuration se fait via un fichier YAML monté dans le conteneur.
Par défaut : config/dashboard.yml
Structure du fichier
site:
name: "Soch Family"
title: "Les applications de la famille"
description: "Accès rapide à nos services"
theme:
mode: "dark"
accent: "#8b5cf6"
background: "gradient"
sections:
- id: "global"
title: "Global"
description: "Services accessibles à toute la famille"
links:
- id: "nextcloud"
name: "Nextcloud"
description: "Fichiers et documents"
url: "https://cloud.example.com"
icon: "Cloud"
color: "#2daae1"
openInNewTab: true
Icônes disponibles
Cloud, Film, Music, Gamepad2, Router, Server, House, BookOpen, Calendar, Mail, Shield, Settings, Globe, ExternalLink
Développement
npm install
npm run dev
Docker
docker compose up -d
Modifiez config/dashboard.yml puis redémarrez le conteneur :
docker compose restart
Licence
MIT