diff --git a/backend/setup-env.sh b/backend/setup-env.sh new file mode 100755 index 0000000..232f839 --- /dev/null +++ b/backend/setup-env.sh @@ -0,0 +1,88 @@ +#!/bin/bash +# Setup script for CVE Dashboard environment configuration +# Creates .env files from .env.example templates with proper IP configuration + +set -e + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" + +echo "CVE Dashboard Environment Setup" +echo "================================" +echo "" + +# Detect current IP address +DETECTED_IP=$(hostname -I | awk '{print $1}') + +# Prompt for IP address +read -p "Enter server IP address [$DETECTED_IP]: " INPUT_IP +SERVER_IP="${INPUT_IP:-$DETECTED_IP}" + +if [ -z "$SERVER_IP" ]; then + echo "ERROR: No IP address provided and auto-detection failed." + exit 1 +fi + +echo "" +echo "Using IP: $SERVER_IP" +echo "" + +# Setup backend .env +BACKEND_ENV="$PROJECT_ROOT/backend/.env" +if [ -f "$BACKEND_ENV" ]; then + read -p "backend/.env exists. Overwrite? [y/N]: " OVERWRITE + if [[ ! "$OVERWRITE" =~ ^[Yy]$ ]]; then + echo "Skipping backend/.env" + else + cat > "$BACKEND_ENV" << ENVFILE +# Backend Configuration +PORT=3001 +API_HOST=$SERVER_IP +CORS_ORIGINS=http://$SERVER_IP:3000 +ENVFILE + echo "Created backend/.env" + fi +else + cat > "$BACKEND_ENV" << ENVFILE +# Backend Configuration +PORT=3001 +API_HOST=$SERVER_IP +CORS_ORIGINS=http://$SERVER_IP:3000 +ENVFILE + echo "Created backend/.env" +fi + +# Setup frontend .env +FRONTEND_ENV="$PROJECT_ROOT/frontend/.env" +if [ -f "$FRONTEND_ENV" ]; then + read -p "frontend/.env exists. Overwrite? [y/N]: " OVERWRITE + if [[ ! "$OVERWRITE" =~ ^[Yy]$ ]]; then + echo "Skipping frontend/.env" + else + cat > "$FRONTEND_ENV" << ENVFILE +# Frontend Configuration +# API_BASE should include the /api path +REACT_APP_API_BASE=http://$SERVER_IP:3001/api +# API_HOST is used for direct file URLs (no /api) +REACT_APP_API_HOST=http://$SERVER_IP:3001 +ENVFILE + echo "Created frontend/.env" + fi +else + cat > "$FRONTEND_ENV" << ENVFILE +# Frontend Configuration +# API_BASE should include the /api path +REACT_APP_API_BASE=http://$SERVER_IP:3001/api +# API_HOST is used for direct file URLs (no /api) +REACT_APP_API_HOST=http://$SERVER_IP:3001 +ENVFILE + echo "Created frontend/.env" +fi + +echo "" +echo "Setup complete!" +echo "" +echo "Next steps:" +echo " 1. If servers are running, restart them to apply changes" +echo " 2. Run: ./start-servers.sh" +echo ""