Entwicklungsreferenz
Code-Organisation
- Komponenten:
src/components/mit Unterverzeichnissen:ui/- shadcn/ui-Komponenten und wiederverwendbare UI-Elementedashboard/- Komponenten für das Dashboardsettings/- Komponenten für die Einstellungsseiteserver-details/- Komponenten für die Server-Detailseite
- API-Routen:
src/app/api/mit RESTful-Endpunktstruktur (siehe API-Referenz) - Datenbank: SQLite mit better-sqlite3, Dienstprogramme in
src/lib/db-utils.ts, Migrationen insrc/lib/db-migrations.ts - Typen: TypeScript-Schnittstellen in
src/lib/types.ts - Konfiguration: Standard-Konfigurationen in
src/lib/default-config.ts - Cron-Service:
src/cron-service/(läuft auf Port 8667 Dev, 9667 Prod) - Skripte: Utility-Skripte im Verzeichnis
scripts/ - Sicherheit: CSRF-Schutz in
src/lib/csrf-middleware.ts, verwenden SiewithCSRF-Middleware für geschützte Endpunkte
Testen und Debugging
- Testdatengenerierung:
pnpm generate-test-data --servers=N - Benachrichtigungstests:
/api/notifications/test-Endpunkt - Cron-Integritätsprüfungen:
curl http://localhost:8667/healthodercurl http://localhost:8666/api/cron/health - Test für überfällige Sicherungen: Einstellungen → Backup-Überwachung (Überfällige Backups testen), oder
POST /api/notifications/check-overduemit Authentifizierung - Entwicklungsmodus: ausführliches Logging und JSON-Dateispeicherung
- Datenbankverwaltung: Verwenden Sie das Wartungsmenü für Bereinigungsvorgänge
- Vorchecks:
scripts/pre-checks.shzur Behebung von Startproblemen
Entwicklungsreferenzen
- API-Endpunkte: Siehe API-Referenz
- Datenbankschema: Siehe Datenbankschema
- Befolgen Sie Muster in
src/lib/db-utils.tsfür Datenbankoperationen
Frameworks und Bibliotheken
Info
Für genaue Versionen siehe package.json (dependencies, devDependencies, engines und packageManager). Die folgende Liste ist absichtlich versionslicht, damit sie über Abhängigkeitsaktualisierungen hinweg genau bleibt.
Laufzeit und Paketverwaltung
- Node.js (siehe
engines.node) - pnpm (erzwungen über das
preinstall-Skript; sieheengines.pnpm/packageManager)
Kern-Frameworks und Bibliotheken
- Next.js (App Router)
- React und React-DOM
- Radix UI (
@radix-ui/react-*-Primitive) - 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 (Cron-Service), node-cron
- nodemailer, qrcode
- ai-i18n-tools, i18next, react-i18next (UI- und Dokumentations-Übersetzungs-Pipeline)
Typprüfung und Linting
- TypeScript (strikter Modus)
- TSX (zum Ausführen von TypeScript-Skripten)
- ESLint (Flat-Config
eslint.config.mjs+eslint-config-next; ausführen überpnpm lint→eslint .) - webpack
Build und Bereitstellung
- Next.js Standalone-Ausgabe (
output: 'standalone') mit Container-Einstiegspunkt, derserver.jsstartet. Die Datei-Verfolgung läuft immer noch für das Docker-Laufzeit-Image;outputFileTracingExcludesinnext.config.tsentfernt nur-Build-Pakete (webpack, SWC-Compiler-Native, esbuild, CSS-Minifier) und nicht-Linux-better-sqlite3-Prebuilds. Schließen Sie@swc/helpers,sharpoder Linux-sqlite-Prebuilds nicht aus. - Docker (node:alpine-Basis) mit Multi-Architektur-Builds (AMD64, ARM64). Das Image erstellt nur die Next.js-App (nicht die Docusaurus-Website); die pnpm-Version wird aus
packageManagerinpackage.jsonentnommen - 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.mjspnpm-workspace.yaml,components.json(shadcn/ui)
System-Funktionen
- Cron-Service: Separater Service für geplante Aufgaben, gestartet von
docker-entrypoint.shin Docker-Bereitstellungen - Benachrichtigungen: ntfy.sh-Integration und SMTP-E-Mail (nodemailer), konfigurierbare Vorlagen
- Automatisches Aktualisieren: Konfigurierbares automatisches Aktualisieren für Dashboard- und Detailseiten