77 lines
2.3 KiB
Bash
77 lines
2.3 KiB
Bash
#!/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."
|