Référence de Développement
Organisation du code
- Composants :
src/components/avec sous-répertoires :ui/- composants shadcn/ui et éléments d'interface réutilisablesdashboard/- composants spécifiques au tableau de bordsettings/- composants de la page des paramètresserver-details/- composants de la page de détail du serveur
- Routes API :
src/app/api/avec structure d'endpoint RESTful (voir Référence API) - Base de données : SQLite avec better-sqlite3, utilitaires dans
src/lib/db-utils.ts, migrations danssrc/lib/db-migrations.ts - Types : interfaces TypeScript dans
src/lib/types.ts - Configuration : configurations par défaut dans
src/lib/default-config.ts - Service Cron :
src/cron-service/(exécuté sur le port 8667 en développement, 9667 en production) - Scripts : scripts utilitaires dans le répertoire
scripts/ - Sécurité : protection CSRF dans
src/lib/csrf-middleware.ts, utiliser le middlewarewithCSRFpour les endpoints protégés
Tests et débogage
- Génération de données de test :
pnpm generate-test-data --servers=N - Test des notifications : endpoint
/api/notifications/test - Vérifications d'intégrité du cron :
curl http://localhost:8667/healthoucurl http://localhost:8666/api/cron/health - Test des sauvegardes en retard : Paramètres → Surveillance des sauvegardes (Tester les sauvegardes en retard), ou
POST /api/notifications/check-overdueavec authentification - Mode développement : journalisation détaillée et stockage dans des fichiers JSON
- Maintenance de la base de données : utiliser le menu de maintenance pour les opérations de nettoyage
- Pré-vérifications :
scripts/pre-checks.shpour le dépannage des problèmes de démarrage
Références de développement
- Points de terminaison API : Voir Référence API
- Schéma de base de données : Voir Schéma de base de données
- Suivez les modèles dans
src/lib/db-utils.tspour les opérations de base de données
Frameworks et bibliothèques
info
Pour les versions exactes, consultez package.json (dependencies, devDependencies, engines et packageManager). La liste ci-dessous est intentionnellement simplifiée au niveau des versions afin de rester exacte lors des mises à jour de dépendances.
Runtime et gestion des paquets
- Node.js (voir
engines.node) - pnpm (imposé via le script
preinstall; voirengines.pnpm/packageManager)
Frameworks et bibliothèques principaux
- Next.js (App Router)
- React et React-DOM
- Radix UI (primitives
@radix-ui/react-*) - Tailwind CSS v4 + tailwindcss-animate
- better-sqlite3
- Recharts, react-day-picker, react-hook-form, react-datepicker
- lucide-react, clsx, class-variance-authority
- date-fns, uuid
- bcrypt
- express (service cron), node-cron
- nodemailer, qrcode
- ai-i18n-tools, i18next, react-i18next (pipeline de traduction de l'UI et de la documentation)
Vérification des types et linting
- TypeScript (mode strict)
- TSX (pour l'exécution de scripts TypeScript)
- ESLint (flat config
eslint.config.mjs+eslint-config-next; exécuté viapnpm lint→eslint .) - webpack
Construction et déploiement
- Sortie autonome Next.js (
output: 'standalone') avec point d'entrée du conteneur lançantserver.js - Docker (base node:alpine) avec des constructions multi-architectures (AMD64, ARM64)
- Workflows GitHub Actions pour CI/CD
- Inkscape pour les logos et images
- Docusaurus pour la documentation
- Greenfish Icon Editor pour les icônes
Configuration du Projet
tsconfig.json,next.config.ts,tailwind.config.ts,postcss.config.mjspnpm-workspace.yaml,components.json(shadcn/ui)
Caractéristiques du Système
- Service Cron : Service distinct pour les tâches planifiées, démarré par
docker-entrypoint.shdans les déploiements Docker - Notifications : Intégration ntfy.sh et e-mail SMTP (nodemailer), modèles configurables
- Actualisation automatique : Actualisation automatique configurable pour le tableau de bord et les pages de détails