Files
DreamChat/.devcontainer/post-start.sh
2026-02-24 10:34:55 +00:00

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."