Server lassen sich anlegen, prüfen, bearbeiten und löschen. Proxmox liefert ab Werk ein selbst signiertes Zertifikat; der Admin sieht es vor dem Speichern und bestätigt den SHA-256-Fingerprint. Der Pin wird in einem eigenen undici-Connector geprüft, sodass eine fremde Gegenstelle das Token nie zu sehen bekommt. Weder Prüfung noch Pin ist im Schema, im Client und per CHECK ausgeschlossen. Fehler von Proxmox werden zu Ursache und Hinweis; bei 403 nennt der Hinweis das fehlende Recht samt Pfad. Getestet gegen einen HTTPS-Mock und im gebauten Stand auf Desktop und 390 px. Closes #002 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
82 lines
2.2 KiB
JSON
82 lines
2.2 KiB
JSON
{
|
|
"name": "proxdeploy",
|
|
"version": "0.1.0-dev",
|
|
"private": true,
|
|
"type": "module",
|
|
"description": "VMs und LXC-Container auf Proxmox VE ausrollen, per Web oder CLI",
|
|
"packageManager": "pnpm@12.6.0",
|
|
"engines": {
|
|
"node": ">=24"
|
|
},
|
|
"scripts": {
|
|
"build": "next build",
|
|
"db:down": "docker compose -f docker-compose.dev.yml down",
|
|
"db:generate": "prisma generate",
|
|
"db:migrate": "prisma migrate dev",
|
|
"db:up": "docker compose -f docker-compose.dev.yml up -d --wait",
|
|
"dev": "next dev",
|
|
"format": "prettier --write .",
|
|
"format:pruefen": "prettier --check .",
|
|
"lint": "eslint",
|
|
"postinstall": "prisma generate",
|
|
"prepare": "husky",
|
|
"start": "next start",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"test:e2e": "playwright test",
|
|
"typecheck": "tsc --noEmit"
|
|
},
|
|
"dependencies": {
|
|
"@fontsource-variable/jetbrains-mono": "^5.3.0",
|
|
"@fontsource-variable/space-grotesk": "^5.3.0",
|
|
"@node-rs/argon2": "^2.2.1",
|
|
"@prisma/adapter-pg": "7.10.0",
|
|
"@prisma/client": "7.10.0",
|
|
"clsx": "^2.1.1",
|
|
"jose": "^6.2.12",
|
|
"lucide-react": "1.47.0",
|
|
"next": "16.4.0",
|
|
"pg": "^8.23.0",
|
|
"pino": "10.4.0",
|
|
"react": "19.3.0",
|
|
"react-dom": "19.3.0",
|
|
"ssh2": "1.17.0",
|
|
"undici": "8.11.2",
|
|
"zod": "^4.6.5"
|
|
},
|
|
"devDependencies": {
|
|
"@commitlint/cli": "^21.2.3",
|
|
"@commitlint/config-conventional": "^21.2.3",
|
|
"@playwright/test": "1.63.0",
|
|
"@tailwindcss/postcss": "^4.3.3",
|
|
"@types/node": "^24.13.6",
|
|
"@types/pg": "^8.23.1",
|
|
"@types/react": "^19.3.0",
|
|
"@types/react-dom": "^19.3.0",
|
|
"@types/ssh2": "1.15.6",
|
|
"dotenv": "^17.4.2",
|
|
"esbuild": "^0.27.0",
|
|
"eslint": "^9.39.5",
|
|
"eslint-config-next": "16.4.0",
|
|
"eslint-config-prettier": "^10.1.8",
|
|
"husky": "^9.1.7",
|
|
"lint-staged": "^17.5.1",
|
|
"prettier": "^3.9.9",
|
|
"prisma": "7.10.0",
|
|
"tailwindcss": "^4.3.3",
|
|
"tsx": "^4.23.13",
|
|
"typescript": "~6.0.3",
|
|
"vite": "8.3.0",
|
|
"vitest": "5.0.1"
|
|
},
|
|
"lint-staged": {
|
|
"*.{ts,tsx,mts,mjs}": [
|
|
"eslint --fix",
|
|
"prettier --write"
|
|
],
|
|
"*.{json,css,yml}": [
|
|
"prettier --write"
|
|
]
|
|
}
|
|
}
|