Entwicklungsreferenz
Code-Organisation
- Komponenten:
src/components/mit Unterverzeichnissen:ui/- shadcn/ui-Komponenten und wiederverwendbare UI-Elementedashboard/- Dashboard-spezifische Komponentensettings/- Einstellungsseiten-Komponentenserver-details/- Server-Detailsseiten-Komponenten
- API-Routen:
src/app/api/mit RESTful-Endpunktstruktur (siehe API-Referenz) - Datenbank: SQLite mit better-sqlite3, Hilfsfunktionen in
src/lib/db-utils.ts, Migrationen insrc/lib/db-migrations.ts - Typen: TypeScript-Schnittstellen in
src/lib/types.ts - Konfiguration: Standardkonfigurationen in
src/lib/default-config.ts - Cron-Service:
src/cron-service/(läuft auf Port 8667 in der Entwicklung, 9667 in der Produktion) - Skripte: Hilfsskripte im Verzeichnis
scripts/ - Sicherheit: CSRF-Schutz in
src/lib/csrf-middleware.ts, verwendewithCSRF-Middleware für geschützte Endpunkte
Testen und Debuggen
- Generierung von Testdaten:
pnpm generate-test-data --servers=N - Benachrichtigungstest: Endpunkt
/api/notifications/test - Cron-Health-Checks:
curl http://localhost:8667/healthodercurl http://localhost:8666/api/cron/health - Testen überfälliger Sicherungen: Einstellungen → Backup-Überwachung (Überfällige Sicherungen testen), oder
POST /api/notifications/check-overduemit Authentifizierung - Entwicklungsmodus: ausführliche Protokollierung und Speicherung in JSON-Dateien
- Datenbankwartung: Wartungsmenü für Bereinigungsoperationen verwenden
- Vorabprüfungen:
scripts/pre-checks.shzur Fehlerbehebung bei Startproblemen
Entwicklungsreferenzen
- API-Endpunkte: Siehe API-Referenz
- Datenbankschema: Siehe Datenbankschema
- Befolgen Sie die Muster in
src/lib/db-utils.tsfür Datenbankoperationen
Frameworks und Bibliotheken
Info
Für die exakten Versionen siehe package.json (dependencies, devDependencies, engines und packageManager). Die folgende Liste ist bewusst versionsarm gehalten, damit sie auch nach Dependency-Upgrades korrekt bleibt.
Runtime & Package-Management
- Node.js (siehe
engines.node) - pnpm (erzwungen über das
preinstall-Skript; sieheengines.pnpm/packageManager)
Core-Frameworks & Bibliotheken
- Next.js (App Router)
- React & React-DOM
- Radix UI (
@radix-ui/react-*-Primitives) - 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- + Dokumentations-Übersetzungspipeline)
Typprüfung & Linting
- TypeScript (Strict Mode)
- TSX (zum Ausführen von TypeScript-Skripten)
- ESLint (Flat Config
eslint.config.mjs+eslint-config-next; Ausführung viapnpm lint→eslint .) - webpack
Build und Deployment
- Next.js standalone Ausgabe (
output: 'standalone') mit Container-Einstiegspunkt, derserver.jsstartet - 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.mjspnpm-workspace.yaml,components.json(shadcn/ui)
Systemfunktionen
- Cron-Dienst: Separater Dienst für geplante Aufgaben, gestartet durch
docker-entrypoint.shbei Docker-Bereitstellungen - Benachrichtigungen: ntfy.sh-Integration und SMTP-E-Mail (nodemailer), konfigurierbare Vorlagen
- Automatische Aktualisierung: Konfigurierbare automatische Aktualisierung für Dashboard und Detailseiten