#!/bin/bash # Script to create a new Frappe site with Academy apps set -e # Check if site name is provided if [ -z "$1" ]; then echo "โŒ Usage: $0 " echo "Example: $0 academy.example.com" exit 1 fi SITE_NAME=$1 echo "๐ŸŒ Creating new site: $SITE_NAME" # Load environment variables if [ -f .env ]; then export $(cat .env | grep -v '^#' | xargs) else echo "โŒ .env file not found. Please create it from .env.example" exit 1 fi # Create the site echo "๐Ÿ“ฆ Creating Frappe site..." docker compose exec -T backend bench new-site \ --no-mariadb-socket \ --admin-password="$ADMIN_PASSWORD" \ --db-root-password="$MARIADB_ROOT_PASSWORD" \ "$SITE_NAME" # Install LMS echo "๐Ÿ“ฆ Installing Academy LMS..." docker compose exec -T backend bench --site "$SITE_NAME" install-app lms # Install AI Tutor Chat echo "๐Ÿ“ฆ Installing AI Tutor Chat..." docker compose exec -T backend bench --site "$SITE_NAME" install-app academy_ai_tutor_chat # Set as default site (optional) read -p "Set as default site? (y/n) " -n 1 -r echo if [[ $REPLY =~ ^[Yy]$ ]]; then docker compose exec -T backend bench use "$SITE_NAME" echo "โœ… Set as default site" fi # Clear cache echo "๐Ÿงน Clearing cache..." docker compose exec -T backend bench --site "$SITE_NAME" clear-cache # Run migrations echo "๐Ÿ”„ Running migrations..." docker compose exec -T backend bench --site "$SITE_NAME" migrate echo "โœ… Site created successfully!" echo "" echo "๐Ÿ“‹ Site details:" echo "URL: http://$SITE_NAME" echo "Username: Administrator" echo "Password: $ADMIN_PASSWORD" echo "" echo "๐Ÿ” Remember to:" echo "1. Update your DNS to point to the server IP" echo "2. Configure SSL certificate for production" echo "3. Update nginx configuration if needed"