Make nmon easier to install and run without editing YAML by hand: - Settings: point-and-click forms over config.yaml (GET/PUT /api/v1/settings/form); the YAML editor moves to /settings/yaml. - First install: with no sign-in configured nmon starts in install mode, serves only the setup wizard (sign-in, basics, devices, alerting) and closes it for good once sign-in is saved. A self-signed certificate is generated when no TLS source is given. poller.interval becomes a config setting. - Reverse proxies: opt-in --http-listen plain-HTTP listener beside HTTPS; sign-in stays required. - Webhooks: Generic, Teams Adaptive Card, Slack and Discord presets, template preview and test send. - Help: the operations, coverage and profile docs served at /help. - Polling: per-device "Poll now", a dry-run test poll returning an SNMP trace, and time-limited in-memory SNMP debug recording, in the UI and as `nmon device poll`. - Ansible: deploys into install mode when no sign-in is set, and no longer overwrites the config.yaml the wizard wrote. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017TuKgyKve2XLFtrrXWMi2w
56 lines
1.5 KiB
JSON
56 lines
1.5 KiB
JSON
{
|
|
"name": "nmon-web",
|
|
"private": true,
|
|
"version": "0.0.0",
|
|
"type": "module",
|
|
"engines": {
|
|
"node": ">=22.12.0"
|
|
},
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"gen:api": "node scripts/gen-api.mjs",
|
|
"build": "tsc --noEmit && vite build",
|
|
"preview": "vite preview",
|
|
"lint": "eslint . --max-warnings 0",
|
|
"test": "vitest run",
|
|
"e2e": "npm run build && playwright test -c e2e/mock.config.ts",
|
|
"e2e:live": "playwright test -c e2e/live.config.ts",
|
|
"fixtures": "node e2e/fixtures/generate.ts"
|
|
},
|
|
"dependencies": {
|
|
"@radix-ui/react-slot": "1.3.3",
|
|
"@radix-ui/react-tooltip": "1.2.16",
|
|
"@tanstack/react-query": "5.104.1",
|
|
"@tanstack/react-router": "1.170.41",
|
|
"class-variance-authority": "0.7.1",
|
|
"clsx": "2.1.1",
|
|
"lucide-react": "1.52.0",
|
|
"openapi-fetch": "0.17.0",
|
|
"react": "19.3.0",
|
|
"react-dom": "19.3.0",
|
|
"react-markdown": "10.1.0",
|
|
"remark-gfm": "4.0.1",
|
|
"tailwind-merge": "3.7.0",
|
|
"uplot": "1.6.32"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "10.0.1",
|
|
"@playwright/test": "1.63.0",
|
|
"@tailwindcss/vite": "4.3.3",
|
|
"@types/node": "25.9.9",
|
|
"@types/react": "19.3.0",
|
|
"@types/react-dom": "19.3.0",
|
|
"@vitejs/plugin-react": "6.1.1",
|
|
"eslint": "10.12.0",
|
|
"eslint-plugin-react-hooks": "7.1.1",
|
|
"globals": "17.13.0",
|
|
"openapi-typescript": "7.13.0",
|
|
"tailwindcss": "4.3.3",
|
|
"tw-animate-css": "1.4.0",
|
|
"typescript": "5.9.3",
|
|
"typescript-eslint": "8.71.0",
|
|
"vite": "8.3.2",
|
|
"vitest": "5.0.3"
|
|
}
|
|
}
|