Zum Hauptinhalt springen

Entwicklungsreferenz

Code-Organisation

  • Komponenten: src/components/ mit Unterverzeichnissen:
    • ui/ - shadcn/ui-Komponenten und wiederverwendbare UI-Elemente
    • dashboard/ - Dashboard-spezifische Komponenten
    • settings/ - Komponenten der Einstellungsseite
    • server-details/ - Komponenten der Server-Details-Seite
  • API-Routen: src/app/api/ mit RESTful-Endpunkt-Struktur (siehe API-Referenz)
  • Datenbank: SQLite mit better-sqlite3, Dienstprogramme in src/lib/db-utils.ts, Migrationen in src/lib/db-migrations.ts
  • Typen: TypeScript-Schnittstellen in src/lib/types.ts
  • Konfiguration: Standardkonfigurationen in src/lib/default-config.ts
  • Cron-Dienst: src/cron-service/ (läuft auf Port 8667 Dev, 9667 Prod)
  • Skripte: Dienstprogramm-Skripte im Verzeichnis scripts/
  • Sicherheit: CSRF-Schutz in src/lib/csrf-middleware.ts, verwenden Sie withCSRF-Middleware für geschützte Endpunkte

Testen & Debugging

  • Testdatengenerierung: pnpm generate-test-data --servers=N
  • Benachrichtigungen testen: /api/notifications/test Endpunkt
  • Cron-Integritätsprüfungen: curl http://localhost:8667/health oder curl http://localhost:8666/api/cron/health
  • Überfällige Sicherung testen: pnpm run-overdue-check
  • Entwicklungsmodus: ausführliches Logging und JSON-Dateispeicherung
  • Datenbankwartung: Wartungsmenü für Bereinigungsvorgänge verwenden
  • Vorchecks: scripts/pre-checks.sh zur Fehlerbehebung bei Startproblemen

Entwicklungsreferenzen

  • API-Endpunkte: Siehe API-Referenz
  • Datenbankschema: Siehe Datenbankschema
  • Befolgen Sie die Muster in src/lib/db-utils.ts für Datenbankoperationen

Frameworks & Bibliotheken

Laufzeit- und Paketverwaltung

  • Node.js >=24.12.0
  • pnpm >=10.24.0 (packageManager: pnpm@10.30.3)

Kern-Frameworks und Bibliotheken

  • Next.js ^16.1.6 (App Router)
  • React ^19.2.4 & React-DOM ^19.2.4
  • Radix UI (@radix-ui/react-*): ^1.1.8 - ^2.2.6 (accordion ^1.2.12, alert-dialog ^1.1.15, avatar ^1.1.11, checkbox ^1.3.3, dialog ^1.1.15, dropdown-menu ^2.1.16, label ^2.1.8, menubar ^1.1.16, popover ^1.1.15, progress ^1.1.8, radio-group ^1.3.8, scroll-area ^1.2.10, select ^2.2.6, separator ^1.1.8, slider ^1.3.6, slot ^1.2.4, switch ^1.2.6, tabs ^1.1.13, toast ^1.2.15, tooltip ^1.2.8)
  • Tailwind CSS ^4.2.1 + tailwindcss-animate ^1.0.7
  • Better-sqlite3 ^12.6.2
  • Recharts ^3.7.0, react-day-picker ^9.14.0, react-hook-form ^7.71.2, react-datepicker ^9.1.0
  • lucide-react ^0.575.0, clsx ^2.1.1, class-variance-authority ^0.7.1
  • date-fns ^4.1.0, uuid ^13.0.0
  • express ^5.2.1 (Cron-Service), node-cron ^4.2.1
  • nodemailer ^8.0.1, qrcode ^1.5.4
  • intlayer ^8.1.8, next-intlayer ^8.1.8, react-intlayer ^8.1.8, @intlayer/editor-react ^8.1.8, @intlayer/swc ^8.1.8

Typprüfung und Linting

  • TypeScript ^5.9.3
  • TSX ^4.21.0
  • ESLint ^9.16.0 (via next lint)
  • intlayer-editor ^8.1.8
  • webpack ^5.105.3

Build & Deployment

  • Next.js Standalone-Ausgabe (output: 'standalone') mit Container-Einstiegspunkt, der server.js startet
  • Docker (node:alpine Basis) mit Multi-Architektur-Builds (AMD64, ARM64)
  • GitHub Actions Workflows für CI/CD
  • Inkscape für Logos und Bilder
  • Docusaurus für Dokumentation
  • Greenfish Icon Editor für Symbole

Projektkonfiguration

  • tsconfig.json, next.config.ts, tailwind.config.ts, postcss.config.mjs
  • pnpm-workspace.yaml, components.json (shadcn/ui)

Systemfunktionen

  • Cron-Dienst: Separater Dienst für geplante Aufgaben, gestartet durch docker-entrypoint.sh bei Docker-Bereitstellungen
  • Benachrichtigungen: ntfy.sh-Integration und SMTP-E-Mail (nodemailer), konfigurierbare Vorlagen
  • Automatische Aktualisierung: Konfigurierbare automatische Aktualisierung für Dashboard und Detailseiten