Referencia de Desarrollo
Organización del Código
- Componentes:
src/components/con subdirectorios:ui/- componentes shadcn/ui y elementos de interfaz reutilizablesdashboard/- componentes específicos del panel de controlsettings/- componentes de la página de configuraciónserver-details/- componentes de la página de detalles del servidor
- Rutas de API:
src/app/api/con estructura de puntos de conexión RESTful (ver Referencia de API) - Base de datos: SQLite con better-sqlite3, utilidades en
src/lib/db-utils.ts, migraciones ensrc/lib/db-migrations.ts - Tipos: interfaces de TypeScript en
src/lib/types.ts - Configuración: Configuraciones por defecto en
src/lib/default-config.ts - Servicio Cron:
src/cron-service/(se ejecuta en el puerto 8667 en desarrollo, 9667 en producción) - Scripts: Scripts de utilidad en el directorio
scripts/ - Seguridad: Protección CSRF en
src/lib/csrf-middleware.ts, usar middlewarewithCSRFpara puntos de conexión protegidos
Pruebas y depuración
- Generación de datos de prueba:
pnpm generate-test-data --servers=N - Pruebas de notificaciones: punto de conexión
/api/notifications/test - Comprobaciones de estado del cron:
curl http://localhost:8667/healthocurl http://localhost:8666/api/cron/health - Pruebas de copia de seguridad retrasada: Configuración → Monitoreo de Copias de Seguridad (Probar respaldos atrasados), o
POST /api/notifications/check-overduecon autenticación - Modo de desarrollo: registro detallado y almacenamiento en archivos JSON
- Mantenimiento de la base de datos: usar el menú de mantenimiento para operaciones de limpieza
- Preverificaciones:
scripts/pre-checks.shpara solucionar problemas de inicio
Referencias de Desarrollo
- Puntos finales de API: Consulte Referencia de API
- Esquema de base de datos: Consulte Esquema de base de datos
- Siga los patrones en
src/lib/db-utils.tspara operaciones de base de datos
Marcos de trabajo y bibliotecas
información
Para obtener las versiones exactas, consulte package.json (dependencies, devDependencies, engines y packageManager). La siguiente lista es intencionadamente ligera en cuanto a versiones para que siga siendo precisa tras las actualizaciones de dependencias.
Entorno de ejecución y gestión de paquetes
- Node.js (consulte
engines.node) - pnpm (impuesto a través del script
preinstall; consulteengines.pnpm/packageManager)
Frameworks y librerías principales
- Next.js (App Router)
- React y React-DOM
- Radix UI (primitivas
@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 (servicio cron), node-cron
- nodemailer, qrcode
- ai-i18n-tools, i18next, react-i18next (pipeline de traducción de UI y documentación)
Comprobación de tipos y linting
- TypeScript (modo estricto)
- TSX (para ejecutar scripts de TypeScript)
- ESLint (configuración plana
eslint.config.mjs+eslint-config-next; ejecute mediantepnpm lint→eslint .) - webpack
Compilación e implementación
- Salida independiente de Next.js (
output: 'standalone') con punto de entrada del contenedor iniciandoserver.js - Docker (base node:alpine) con compilaciones multiarquitectura (AMD64, ARM64)
- Flujos de trabajo de GitHub Actions para CI/CD
- Inkscape para logotipos e imágenes
- Docusaurus para documentación
- Greenfish Icon Editor para iconos
Configuración del Proyecto
tsconfig.json,next.config.ts,tailwind.config.ts,postcss.config.mjspnpm-workspace.yaml,components.json(shadcn/ui)
Características del Sistema
- Servicio Cron: Servicio separado para tareas programadas, iniciado por
docker-entrypoint.shen implementaciones de Docker - Notificaciones: Integración de ntfy.sh y correo electrónico SMTP (nodemailer), plantillas configurables
- Actualización automática: Actualización automática configurable para el panel de control y páginas de detalles