#!/bin/bash set -e echo "🚀 Setting up DreamChat monorepo development environment..." # Install all dependencies (uses pnpm workspaces) echo "📦 Installing dependencies..." cd /workspace pnpm install # Build shared packages first echo "📦 Building shared packages..." pnpm --filter @dreamchat/shared build || echo "Shared package build skipped (may not exist yet)" # Generate Prisma client echo "🔧 Generating Prisma client..." cd /workspace/apps/backend pnpm db:generate || echo "Prisma generate skipped (may not be set up yet)" cd - # Copy environment files if they don't exist if [ ! -f /workspace/apps/backend/.env ]; then echo "⚙️ Creating backend .env file..." mkdir -p /workspace/apps/backend cat > /workspace/apps/backend/.env << EOF NODE_ENV=development PORT=3000 DATABASE_URL=postgresql://postgres:postgres@db:5432/dreamchat JWT_SECRET=dev-jwt-secret-change-in-production JWT_EXPIRES_IN=1h JWT_REFRESH_EXPIRES_IN=7d LLM_PROVIDER=openrouter LLM_API_KEY=your-openrouter-api-key LLM_MODEL=openai/gpt-4o # Keycloak (external) - configure if using external Keycloak KEYCLOAK_ENABLED=false # KEYCLOAK_URL=http://your-keycloak-server:8080 # KEYCLOAK_REALM=dreamchat # KEYCLOAK_CLIENT_ID=dreamchat-backend # KEYCLOAK_CLIENT_SECRET=your_keycloak_secret # Keycloak Authorization (optional) # KEYCLOAK_REQUIRED_GROUP=dreamchat-users # KEYCLOAK_REQUIRED_ROLE=dreamchat-access # KEYCLOAK_REQUIRED_CLIENT_ROLE=user # KEYCLOAK_REQUIRED_ATTRIBUTE=approved:true # Keycloak Auto-Create Users KEYCLOAK_AUTO_CREATE_USER=true KEYCLOAK_DEFAULT_USER_ROLE=USER EOF fi if [ ! -f /workspace/apps/frontend/.env ]; then echo "⚙️ Creating frontend .env file..." mkdir -p /workspace/apps/frontend cat > /workspace/apps/frontend/.env << EOF VITE_API_URL=http://localhost:3000/api VITE_WS_URL=ws://localhost:3000 # Keycloak (external) - configure if using external Keycloak # VITE_KEYCLOAK_URL=http://your-keycloak-server:8080 # VITE_KEYCLOAK_REALM=dreamchat # VITE_KEYCLOAK_CLIENT_ID=dreamchat-frontend EOF fi echo "✅ Development environment setup complete!" echo "" echo "Next steps:" echo "1. Start all apps: pnpm dev" echo "2. Or start individually:" echo " - Backend: pnpm --filter @dreamchat/backend dev" echo " - Frontend: pnpm --filter @dreamchat/frontend dev" echo "" echo "Note: Keycloak is external. Configure KEYCLOAK_URL in apps/backend/.env if needed."