chore: add pnpm workspace configuration for apps and packages
This commit is contained in:
76
.devcontainer/post-create.sh
Normal file
76
.devcontainer/post-create.sh
Normal file
@@ -0,0 +1,76 @@
|
||||
#!/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."
|
||||
Reference in New Issue
Block a user