Zwei Eintraege desselben Namens beim selben Kunden entstehen, wenn sich die Kennung aus /etc/machine-id aendert - Neuinstallation, geklonter Container, zurueckgespielte Sicherung. Dieselbe Maschine meldet sich dann als neuer Host, der alte Eintrag bleibt stehen. Zwei getrennte Maschinen mit gleichem Namen sind aber genauso moeglich. Neue dreizehnte Warnregel meldet den Fall und nennt die IP-Adressen zum Unterscheiden; gleiche Namen bei verschiedenen Kunden bleiben still. Dazu die bis dahin fehlende Moeglichkeit, einen Host loszuwerden: Stilllegen blendet ihn aus Listen, Zahlen, Suche und Warnungen aus und schliesst seine offenen Warnungen, laesst Laufzeiten und Rechnungen aber unberuehrt. Endgueltig loeschen geht nur ohne Laufzeiten - Buchhaltung wirft man nicht weg. Kein automatisches Zusammenfuehren: Es muesste raten, welcher Eintrag welche Rechnung erbt. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
77 lines
2.4 KiB
JSON
77 lines
2.4 KiB
JSON
{
|
|
"name": "proxledger",
|
|
"version": "0.24.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"lint": "eslint",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"format": "prettier --write .",
|
|
"db:up": "docker compose -f docker-compose.dev.yml up -d",
|
|
"db:down": "docker compose -f docker-compose.dev.yml down",
|
|
"db:migrate": "prisma migrate dev",
|
|
"db:seed": "prisma db seed",
|
|
"db:studio": "prisma studio",
|
|
"db:generate": "prisma generate",
|
|
"postinstall": "prisma generate",
|
|
"issues:sync": "tsx scripts/gitea-issues.ts",
|
|
"worker": "tsx src/worker/index.ts",
|
|
"alerts:check": "tsx scripts/alerts-pruefen.ts",
|
|
"build:worker": "esbuild src/worker/index.ts --bundle --platform=node --target=node24 --format=esm --outfile=dist/worker.mjs --banner:js=\"$(cat deploy/worker-banner.js)\" --external:@prisma/client --external:@node-rs/argon2 --external:pg-native",
|
|
"build:all": "npm run build && npm run build:worker",
|
|
"lasttest": "tsx scripts/lasttest.ts",
|
|
"screenshots": "node scripts/screenshots.mjs",
|
|
"icons": "node scripts/icons.mjs",
|
|
"pruefe:doku": "node scripts/pruefe-doku.mjs",
|
|
"benutzer": "tsx scripts/benutzer.ts"
|
|
},
|
|
"dependencies": {
|
|
"@node-rs/argon2": "^2.2.1",
|
|
"@prisma/adapter-pg": "^7.10.0",
|
|
"@prisma/client": "^7.10.0",
|
|
"@react-pdf/renderer": "^4.9.0",
|
|
"@simplewebauthn/browser": "^14.0.0",
|
|
"@simplewebauthn/server": "^14.0.3",
|
|
"admin-lte": "^4.9.1",
|
|
"bootstrap": "^5.3.8",
|
|
"bootstrap-icons": "^1.13.1",
|
|
"croner": "^10.0.1",
|
|
"jose": "^6.2.12",
|
|
"next": "^16.3.8",
|
|
"nodemailer": "^10.0.10",
|
|
"openid-client": "^6.8.8",
|
|
"react": "19.2.8",
|
|
"react-dom": "19.2.8",
|
|
"zod": "^4.6.5"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^24.13.5",
|
|
"@types/nodemailer": "^8.0.2",
|
|
"@types/react": "^19",
|
|
"@types/react-dom": "^19",
|
|
"dotenv": "^17.4.2",
|
|
"esbuild": "^0.28.2",
|
|
"eslint": "^9",
|
|
"eslint-config-next": "^16.3.8",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"prettier": "^3.9.7",
|
|
"prisma": "^7.10.0",
|
|
"sharp": "^0.35.4",
|
|
"tsx": "^4.23.13",
|
|
"typescript": "^5",
|
|
"vitest": "^5.0.1"
|
|
},
|
|
"description": "Proxmox Subscription Dashboard",
|
|
"engines": {
|
|
"node": ">=24"
|
|
},
|
|
"overrides": {
|
|
"mysql2": "^3.24.4",
|
|
"deepmerge-ts": "^8.0.0"
|
|
}
|
|
}
|