Initial commit: EGBE chatbot template

Stripped from vercel/chatbot (Apache 2.0):
- Dropped @vercel/* packages and AI Gateway
- Removed artifacts feature (code/text/sheet/image side panel)
- Switched AI provider to @ai-sdk/openai-compatible -> EGBE LiteLLM
- Replaced Vercel Blob upload with data URLs
- Dropped Redis resumable streams and rate limiter (in-memory now)
- Added Dockerfile (Next.js standalone) + entrypoint that runs migrations
- Wired DATABASE_URL, EGBE_AI_API_URL/KEY, NEXT_PUBLIC_BASE_URL for app-deploy.sh
This commit is contained in:
dmitry.galkin 2026-05-25 14:54:04 +04:00
commit 3e21c2334c
129 changed files with 21913 additions and 0 deletions

77
package.json Normal file
View file

@ -0,0 +1,77 @@
{
"name": "egbe-chatbot",
"version": "1.0.0",
"private": true,
"scripts": {
"dev": "next dev --turbo",
"build": "next build",
"start": "next start",
"check": "ultracite check",
"fix": "ultracite fix",
"db:generate": "drizzle-kit generate",
"db:migrate": "npx tsx lib/db/migrate.ts",
"db:studio": "drizzle-kit studio",
"db:push": "drizzle-kit push",
"db:pull": "drizzle-kit pull",
"db:check": "drizzle-kit check",
"db:up": "drizzle-kit up"
},
"dependencies": {
"@ai-sdk/openai-compatible": "^1.0.20",
"@ai-sdk/provider": "^3.0.3",
"@ai-sdk/react": "3.0.118",
"@radix-ui/react-use-controllable-state": "^1.2.2",
"@streamdown/cjk": "^1.0.2",
"@streamdown/code": "^1.0.3",
"@streamdown/math": "^1.0.2",
"@streamdown/mermaid": "^1.0.2",
"ai": "6.0.116",
"bcrypt-ts": "^5.0.2",
"class-variance-authority": "^0.7.1",
"classnames": "^2.5.1",
"clsx": "^2.1.1",
"cmdk": "^1.1.1",
"date-fns": "^4.1.0",
"dotenv": "^16.4.5",
"drizzle-orm": "^0.34.0",
"fast-deep-equal": "^3.1.3",
"framer-motion": "^11.3.19",
"katex": "^0.16.28",
"lucide-react": "^0.446.0",
"motion": "^12.23.26",
"nanoid": "^5.1.3",
"next": "16.2.0",
"next-auth": "5.0.0-beta.25",
"next-themes": "^0.3.0",
"postgres": "^3.4.4",
"radix-ui": "^1.4.3",
"react": "19.0.1",
"react-dom": "19.0.1",
"server-only": "^0.0.1",
"shiki": "^3.21.0",
"sonner": "^1.5.0",
"streamdown": "^2.3.0",
"swr": "^2.2.5",
"tailwind-merge": "^2.5.2",
"tailwindcss-animate": "^1.0.7",
"use-stick-to-bottom": "^1.1.1",
"usehooks-ts": "^3.1.0",
"zod": "^3.25.76"
},
"devDependencies": {
"@biomejs/biome": "2.3.11",
"@tailwindcss/postcss": "^4.1.13",
"@tailwindcss/typography": "^0.5.15",
"@types/node": "^22.8.6",
"@types/react": "^18",
"@types/react-dom": "^18",
"babel-plugin-react-compiler": "^1.0.0",
"drizzle-kit": "^0.25.0",
"postcss": "^8",
"tailwindcss": "^4.1.13",
"tsx": "^4.19.1",
"typescript": "^5.6.3",
"ultracite": "^7.0.11"
},
"packageManager": "pnpm@10.32.1"
}