{ "name": "doktainer", "description": "Doktainer is a platform for managing containerized applications.", "version": "v0.1.5", "author": "Doktainer Team", "license": "MIT", "private": true, "scripts": { "predev": "node scripts/ensure-prisma-client.cjs", "dev": "concurrently -k -n web,api -c cyan,green \"npm:dev:frontend\" \"npm:dev:server\"", "dev:frontend": "next dev", "dev:server": "tsx watch src/server/index.ts", "prebuild": "node scripts/ensure-prisma-client.cjs", "build": "npm run build:frontend && npm run build:server", "build:frontend": "next build", "build:server": "tsc -p tsconfig.server.json", "pretest": "node scripts/ensure-prisma-client.cjs", "test": "tsx --test tests/**/*.test.ts", "lint": "eslint .", "start": "concurrently -k -n web,api -c cyan,green \"npm:start:frontend\" \"npm:start:server\"", "start:frontend": "next start", "start:server": "node dist/server/index.js", "db:generate": "npx prisma generate", "db:push": "npx prisma db push", "db:migrate": "npx prisma migrate dev", "db:studio": "npx prisma studio" }, "dependencies": { "@aws-sdk/client-s3": "^3.1031.0", "@fastify/cors": "^11.2.0", "@fastify/jwt": "^10.0.0", "@fastify/multipart": "^10.0.0", "@fastify/rate-limit": "^10.3.0", "@fastify/websocket": "^11.2.0", "@prisma/client": "6.19.3", "@radix-ui/react-avatar": "^1.1.11", "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-dropdown-menu": "^2.1.16", "@radix-ui/react-scroll-area": "^1.2.10", "@radix-ui/react-separator": "^1.1.8", "@radix-ui/react-tabs": "^1.1.13", "@radix-ui/react-tooltip": "^1.2.8", "@xterm/addon-fit": "^0.11.0", "@xterm/addon-web-links": "^0.12.0", "@xterm/xterm": "^6.0.0", "adm-zip": "^0.5.17", "bcryptjs": "^3.0.3", "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "dockerode": "^5.0.0", "dotenv": "^16.4.7", "fastify": "^5.3.2", "js-yaml": "^4.1.1", "lucide-react": "^1.8.0", "next": "^16.2.6", "node-ssh": "^13.2.0", "node-xlsx": "^0.24.0", "nodemailer": "^8.0.5", "otplib": "^13.4.0", "qrcode": "^1.5.4", "react": "19.2.4", "react-dom": "19.2.4", "recharts": "^3.8.1", "tailwind-merge": "^3.5.0", "tldts": "^7.4.2", "zod": "^4.4.3" }, "devDependencies": { "@tailwindcss/postcss": "^4", "@types/adm-zip": "^0.5.8", "@types/bcryptjs": "^3.0.0", "@types/dockerode": "^4.0.1", "@types/js-yaml": "^4.0.9", "@types/node": "^22.14.1", "@types/nodemailer": "^8.0.0", "@types/qrcode": "^1.5.6", "@types/react": "^19", "@types/react-dom": "^19", "concurrently": "^9.1.2", "eslint": "^9", "eslint-config-next": "16.2.3", "pino-pretty": "^13.1.3", "prisma": "6.19.3", "tailwindcss": "^4", "tsx": "^4.20.6", "typescript": "^5.8.3" } }