Spaces:
Sleeping
Sleeping
| # Gemini Business2API Setup Script | |
| # Handles both installation and updates automatically | |
| # Uses uv for Python environment management | |
| # Usage: ./setup.sh | |
| set -e # Exit on error | |
| echo "==========================================" | |
| echo "Gemini Business2API Setup Script" | |
| echo "==========================================" | |
| echo "" | |
| # Color codes for output | |
| RED='\033[0;31m' | |
| GREEN='\033[0;32m' | |
| YELLOW='\033[1;33m' | |
| BLUE='\033[0;34m' | |
| NC='\033[0m' # No Color | |
| # Function to print colored messages | |
| print_success() { | |
| echo -e "${GREEN}✓ $1${NC}" | |
| } | |
| print_error() { | |
| echo -e "${RED}✗ $1${NC}" | |
| } | |
| print_info() { | |
| echo -e "${YELLOW}→ $1${NC}" | |
| } | |
| print_step() { | |
| echo -e "${BLUE}[STEP] $1${NC}" | |
| } | |
| # Check if git is installed | |
| if ! command -v git &> /dev/null; then | |
| print_error "Git is not installed. Please install git first." | |
| exit 1 | |
| fi | |
| # Step 1: Install or update uv | |
| print_step "Step 1: Installing/Updating uv..." | |
| if ! command -v uv &> /dev/null; then | |
| print_info "uv not found, installing..." | |
| # Install uv using pipx or pip | |
| if command -v pipx &> /dev/null; then | |
| pipx install uv | |
| elif command -v pip &> /dev/null; then | |
| pip install --user uv | |
| else | |
| # Fallback: download and install uv binary | |
| curl -LsSf https://astral.sh/uv/install.sh | sh | |
| export PATH="$HOME/.local/bin:$PATH" | |
| fi | |
| print_success "uv installed successfully" | |
| else | |
| print_info "Updating uv to latest version..." | |
| uv pip install --upgrade uv | |
| print_success "uv updated" | |
| fi | |
| echo "" | |
| # Step 2: Ensure Python 3.11 is available | |
| print_step "Step 2: Ensuring Python 3.11 is available..." | |
| if ! uv python list | grep -q "3.11"; then | |
| print_info "Python 3.11 not found, installing..." | |
| uv python install 3.11 | |
| print_success "Python 3.11 installed" | |
| else | |
| print_success "Python 3.11 is already available" | |
| fi | |
| echo "" | |
| # Step 3: Pull latest code from git | |
| print_step "Step 3: Syncing code from repository..." | |
| print_info "Fetching latest changes..." | |
| git fetch origin | |
| print_info "Pulling latest code..." | |
| if git pull origin main 2>/dev/null || git pull origin master 2>/dev/null; then | |
| print_success "Code synchronized successfully" | |
| else | |
| print_info "No remote changes to pull" | |
| fi | |
| echo "" | |
| # Step 4: Setup .env file if it doesn't exist | |
| print_step "Step 4: Checking configuration..." | |
| if [ -f ".env" ]; then | |
| print_info ".env file exists" | |
| else | |
| if [ -f ".env.example" ]; then | |
| cp .env.example .env | |
| print_success ".env file created from .env.example" | |
| print_info "Please edit .env and configure your ADMIN_KEY" | |
| else | |
| print_error ".env.example not found" | |
| exit 1 | |
| fi | |
| fi | |
| echo "" | |
| # Step 5: Setup Python virtual environment | |
| print_step "Step 5: Setting up Python environment..." | |
| if [ -d ".venv" ]; then | |
| print_info "Virtual environment already exists" | |
| else | |
| print_info "Creating virtual environment with Python 3.11..." | |
| uv venv --python 3.11 .venv | |
| print_success "Virtual environment created" | |
| fi | |
| echo "" | |
| # Step 6: Install/Update Python dependencies | |
| print_step "Step 6: Installing Python dependencies..." | |
| print_info "Using uv to install dependencies (this may take a moment)..." | |
| uv pip install --python .venv/bin/python -r requirements.txt --system | |
| print_success "Python dependencies installed" | |
| echo "" | |
| # Step 7: Setup frontend | |
| print_step "Step 7: Setting up frontend..." | |
| if [ -d "frontend" ]; then | |
| cd frontend | |
| # Check if npm is installed | |
| if command -v npm &> /dev/null; then | |
| print_info "Installing dependencies..." | |
| npm install | |
| print_info "Building frontend..." | |
| npm run build | |
| print_success "Frontend built successfully" | |
| else | |
| print_error "npm is not installed. Please install Node.js and npm first." | |
| cd .. | |
| exit 1 | |
| fi | |
| cd .. | |
| else | |
| print_error "Frontend directory not found. Are you in the project root?" | |
| exit 1 | |
| fi | |
| echo "" | |
| # Step 8: Show completion message | |
| echo "==========================================" | |
| print_success "Setup completed successfully!" | |
| echo "==========================================" | |
| echo "" | |
| if [ -f ".env" ]; then | |
| print_info "Next steps:" | |
| echo "" | |
| echo " 1. Edit .env file if needed:" | |
| echo " ${BLUE}nano .env${NC} or ${BLUE}vim .env${NC}" | |
| echo "" | |
| echo " 2. Start the service:" | |
| echo " ${BLUE}uv run python main.py${NC}" | |
| echo "" | |
| echo " 3. Access the admin panel:" | |
| echo " ${BLUE}http://localhost:7860/${NC}" | |
| echo "" | |
| print_info "To activate virtual environment later, run:" | |
| echo " ${BLUE}source .venv/bin/activate${NC}" | |
| fi | |
| echo "" | |