#!/bin/bash # Ideas Generator 2025 - Quick Setup Script # Simplified version with better feedback set -e # Colors RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' CYAN='\033[0;36m' NC='\033[0m' print_step() { echo "" echo -e "${CYAN}━━━ $1 ━━━${NC}" echo "" } ask_with_default() { local question="$1" local default="$2" local is_secret="$3" if [ "$is_secret" = "secret" ]; then echo -e "${BLUE}$question${NC}" echo -e "Default: ${YELLOW}[hidden]${NC}" printf "Enter value (or press Enter for default): " read -s response echo "" else echo -e "${BLUE}$question${NC}" if [ -n "$default" ]; then echo -e "Default: ${YELLOW}$default${NC}" fi printf "Enter value (or press Enter for default): " read response fi if [ -z "$response" ] && [ -n "$default" ]; then response="$default" fi echo "$response" } generate_password() { openssl rand -base64 32 2>/dev/null || date +%s | sha256sum | base64 | head -c 32 } generate_jwt() { openssl rand -base64 64 2>/dev/null || date +%s | sha256sum | base64 | head -c 64 } # Determine Docker Compose command if command -v docker-compose &> /dev/null; then COMPOSE="docker-compose" else COMPOSE="docker compose" fi clear echo -e "${GREEN}🚀 Ideas Generator 2025 - Quick Docker Setup${NC}" echo "" echo "This will set up your deployment with sensible defaults." echo "You can customize later by editing the .env file." echo "" read -p "Press Enter to continue or Ctrl+C to exit..." # Basic Configuration print_step "🌐 Basic Configuration" DOMAIN=$(ask_with_default "Domain name for deployment?" "localhost") HTTP_PORT=$(ask_with_default "HTTP port?" "80") # Database Configuration print_step "🗄️ Database Configuration" DB_NAME=$(ask_with_default "Database name?" "ideas_gen_prod") DB_USER=$(ask_with_default "Database user?" "ideas_admin") DB_PASSWORD=$(ask_with_default "Database password?" "$(generate_password)" "secret") # Security Configuration print_step "🔐 Security Configuration" JWT_SECRET=$(ask_with_default "JWT Secret?" "$(generate_jwt)" "secret") # OpenAI Configuration print_step "🤖 OpenAI Configuration" while [ -z "$OPENAI_API_KEY" ]; do OPENAI_API_KEY=$(ask_with_default "OpenAI API Key (required)?" "" "secret") if [ -z "$OPENAI_API_KEY" ]; then echo -e "${RED}OpenAI API Key is required!${NC}" fi done # Azure AD Configuration print_step "🏢 Azure AD Configuration" AZURE_TENANT=$(ask_with_default "Azure Tenant ID?" "e519c2e6-bc6d-4fdf-8d9c-923c2f002385") AZURE_CLIENT=$(ask_with_default "Azure Client ID?" "9079054c-9620-4757-a256-23413042f1ef") # Generate configuration print_step "📝 Generating Configuration" echo "Creating .env file..." cat > .env << EOF # Ideas Generator 2025 - Configuration # Generated: $(date) DOMAIN_NAME=$DOMAIN HTTP_PORT=$HTTP_PORT HTTPS_PORT=443 DATABASE_NAME=$DB_NAME DATABASE_USER=$DB_USER DATABASE_PASSWORD=$DB_PASSWORD JWT_SECRET=$JWT_SECRET AZURE_TENANT_ID=$AZURE_TENANT AZURE_CLIENT_ID=$AZURE_CLIENT OPENAI_API_KEY=$OPENAI_API_KEY FRONTEND_URL=http://$DOMAIN:$HTTP_PORT BACKEND_URL=http://$DOMAIN:$HTTP_PORT/api CORS_ORIGIN=http://$DOMAIN:$HTTP_PORT,http://localhost:$HTTP_PORT SSL_CERT_PATH=./certs EOF echo -e "${GREEN}✅ Configuration saved to .env${NC}" # Start deployment print_step "🚀 Starting Deployment" echo "Building and starting containers..." echo "This may take a few minutes for the first build." echo "" $COMPOSE up -d --build echo "" echo -e "${GREEN}✅ Deployment Complete!${NC}" echo "" echo -e "${CYAN}Your Ideas Generator 2025 is now running at:${NC}" echo -e "${YELLOW}http://$DOMAIN:$HTTP_PORT${NC}" echo "" echo -e "${BLUE}Useful commands:${NC}" echo -e " View status: ${CYAN}$COMPOSE ps${NC}" echo -e " View logs: ${CYAN}$COMPOSE logs -f${NC}" echo -e " Stop: ${CYAN}$COMPOSE down${NC}" echo -e " Restart: ${CYAN}$COMPOSE restart${NC}" echo "" # Show status $COMPOSE ps echo "" echo -e "${GREEN}🎉 Setup complete!${NC}"