- 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
72 lines
1.2 KiB
Markdown
72 lines
1.2 KiB
Markdown
# Sochboard
|
|
|
|
Dashboard familial pour les applications auto-hébergées.
|
|
|
|
## Démarrage rapide
|
|
|
|
```bash
|
|
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
|
|
|
|
```yaml
|
|
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
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
## Docker
|
|
|
|
```bash
|
|
docker compose up -d
|
|
```
|
|
|
|
Modifiez `config/dashboard.yml` puis redémarrez le conteneur :
|
|
|
|
```bash
|
|
docker compose restart
|
|
```
|
|
|
|
## Licence
|
|
|
|
MIT
|