QUICKSTART fuehrt von null zur laufenden Instanz und enthaelt die vollstaendige Nginx-Proxy-Manager-Konfiguration - inklusive der beiden Stellen, an denen es sonst klemmt: client_max_body_size fuer grosse Anleitungs-PDFs und X-Forwarded-For fuer das Rate-Limit. Die Anleitung ist bebildert. Die 16 Screenshots entstehen automatisiert mit `pnpm screenshots` gegen das Produktions-Image im Container, nicht gegen den Dev-Server: der brach unter Last reproduzierbar mit ChunkLoadError ab, und die Bilder zeigen so ohnehin genau das, was nach `docker compose up` zu sehen ist. Nebenbei behoben: in der Mehrfachauswahl verdeckte die Aktionsleiste die letzte Kachelreihe. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
74 lines
2.0 KiB
JSON
74 lines
2.0 KiB
JSON
{
|
|
"name": "bricktrack",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"description": "Self-hosted Verwaltung fuer Spielzeug-Set-Sammlungen (Lego, Playmobil, Cobi, ...)",
|
|
"packageManager": "pnpm@10.34.5",
|
|
"engines": {
|
|
"node": ">=22"
|
|
},
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"lint": "eslint .",
|
|
"typecheck": "tsc --noEmit",
|
|
"db:generate": "drizzle-kit generate",
|
|
"db:migrate": "tsx scripts/migrate.ts",
|
|
"db:seed": "tsx scripts/seed.ts",
|
|
"db:studio": "drizzle-kit studio",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest",
|
|
"test:e2e": "node scripts/reset-e2e.mjs && playwright test",
|
|
"screenshots": "node scripts/screenshots-prepare.mjs && playwright test --config=playwright.screenshots.config.ts"
|
|
},
|
|
"dependencies": {
|
|
"@better-auth/passkey": "^1.7.3",
|
|
"better-auth": "^1.7.3",
|
|
"better-sqlite3": "^13.0.3",
|
|
"class-variance-authority": "^0.7.1",
|
|
"cn": "^0.2.6",
|
|
"date-fns": "^4.4.0",
|
|
"drizzle-orm": "^0.45.2",
|
|
"lucide-react": "^1.41.0",
|
|
"next": "15.5.25",
|
|
"next-themes": "^0.4.6",
|
|
"pdfjs-dist": "^6.3.289",
|
|
"radix-ui": "^1.6.7",
|
|
"react": "19.1.0",
|
|
"react-dom": "19.1.0",
|
|
"server-only": "^0.0.1",
|
|
"sharp": "^0.35.4",
|
|
"sonner": "^2.0.8",
|
|
"tw-animate-css": "^1.4.0",
|
|
"zod": "^4.5.4"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/eslintrc": "^3",
|
|
"@playwright/test": "^1.63.0",
|
|
"@tailwindcss/postcss": "^4",
|
|
"@types/better-sqlite3": "^9.6.0",
|
|
"@types/node": "^20",
|
|
"@types/react": "^19",
|
|
"@types/react-dom": "^19",
|
|
"dotenv": "^17.4.2",
|
|
"drizzle-kit": "^0.31.10",
|
|
"esbuild": "^0.25.12",
|
|
"eslint": "^9",
|
|
"eslint-config-next": "15.5.25",
|
|
"shadcn": "^4.21.0",
|
|
"tailwindcss": "^4",
|
|
"tsx": "^4.23.13",
|
|
"typescript": "^5",
|
|
"vitest": "^5.0.0"
|
|
},
|
|
"pnpm": {
|
|
"onlyBuiltDependencies": [
|
|
"better-sqlite3",
|
|
"esbuild",
|
|
"sharp",
|
|
"unrs-resolver"
|
|
]
|
|
}
|
|
}
|