Files
ebook-extension/ebook_backend_admin_panel/start.sh
richardtekula f78c2199e1 Fix: Rename directory to remove & character causing shell issues
Renamed ebook_backend&admin_panel to ebook_backend_admin_panel
  The & character was being interpreted by shell as background
  process operator, causing 'Dockerfile not found' errors in Coolify.
2025-11-11 17:06:39 +01:00

118 lines
3.6 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# =============================================================================
# Ebook Coupon Management System - Startup Script
# =============================================================================
# This script starts the application and automatically initializes the database
# =============================================================================
set -e # Exit on error
echo "======================================================================"
echo " EBOOK COUPON MANAGEMENT SYSTEM - STARTUP"
echo "======================================================================"
echo ""
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
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_warning() {
echo -e "${YELLOW}⚠️ $1${NC}"
}
print_info() {
echo -e "${NC} $1${NC}"
}
# Check if .env file exists
if [ ! -f ".env" ]; then
print_warning ".env file not found!"
print_info "Copying .env.example to .env..."
if [ -f ".env.example" ]; then
cp .env.example .env
print_success ".env file created from .env.example"
print_warning "Please update .env with your configuration!"
echo ""
read -p "Press Enter to continue or Ctrl+C to exit and configure .env..."
else
print_error ".env.example not found! Cannot create .env file."
exit 1
fi
fi
# Navigate to admin-backend directory
cd admin-backend
print_info "Checking virtual environment..."
# Check if virtual environment exists
if [ ! -d "../.venv" ]; then
print_warning "Virtual environment not found. Creating one..."
cd ..
python3 -m venv .venv
print_success "Virtual environment created"
cd admin-backend
fi
# Activate virtual environment
print_info "Activating virtual environment..."
source ../.venv/bin/activate
print_success "Virtual environment activated"
# Install/update requirements
print_info "Installing/updating dependencies..."
pip install -q --upgrade pip
pip install -q -r ../requirements.txt
print_success "Dependencies installed"
echo ""
echo "======================================================================"
print_info "Starting application server..."
print_info "The database will be automatically initialized on startup:"
print_info " - Tables will be created if they don't exist"
print_info " - Admin user will be created if none exists"
echo "======================================================================"
echo ""
# Check if port is already in use
if lsof -Pi :8000 -sTCP:LISTEN -t >/dev/null 2>&1 ; then
print_warning "Port 8000 is already in use!"
print_info "Killing existing process..."
kill -9 $(lsof -t -i:8000) 2>/dev/null || true
sleep 2
fi
# Start the server
print_success "Starting uvicorn server on http://0.0.0.0:8000"
echo ""
echo "======================================================================"
print_info "Access the application:"
print_info " - API: http://localhost:8000"
print_info " - Health Check: http://localhost:8000/health"
print_info " - API Docs: http://localhost:8000/docs"
print_info " - Admin Login: http://localhost:8000/login"
echo "======================================================================"
echo ""
print_info "Default Admin Credentials (from .env):"
print_info " Username: admin"
print_info " Password: admin123"
echo "======================================================================"
echo ""
# Start uvicorn (init_db.py will run automatically)
uvicorn main:app --reload --host 0.0.0.0 --port 8000