113 lines
No EOL
2.4 KiB
Bash
Executable file
113 lines
No EOL
2.4 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
echo "🚀 Avvio Simple Fullstack App..."
|
|
|
|
# Colori per output
|
|
GREEN='\033[0;32m'
|
|
BLUE='\033[0;34m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Funzione per stampare messaggi colorati
|
|
print_status() {
|
|
echo -e "${BLUE}[INFO]${NC} $1"
|
|
}
|
|
|
|
print_success() {
|
|
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
|
}
|
|
|
|
print_warning() {
|
|
echo -e "${YELLOW}[WARNING]${NC} $1"
|
|
}
|
|
|
|
# Controlla se Python3 è installato
|
|
if ! command -v python3 &> /dev/null; then
|
|
echo "❌ Python3 non trovato. Installa Python3 prima di continuare."
|
|
exit 1
|
|
fi
|
|
|
|
# Controlla se Docker è installato
|
|
if ! command -v docker &> /dev/null; then
|
|
echo "❌ Docker non trovato. Installa Docker prima di continuare."
|
|
exit 1
|
|
fi
|
|
|
|
# Controlla se http-server è installato
|
|
if ! command -v http-server &> /dev/null; then
|
|
print_warning "http-server non trovato. Installando..."
|
|
npm install -g http-server
|
|
fi
|
|
|
|
# Crea virtual environment se non esiste
|
|
if [ ! -d "venv" ]; then
|
|
print_status "Creazione virtual environment..."
|
|
python3 -m venv venv
|
|
print_success "Virtual environment creato!"
|
|
else
|
|
print_status "Virtual environment già esistente"
|
|
fi
|
|
|
|
# Attiva virtual environment
|
|
print_status "Attivazione virtual environment..."
|
|
source venv/bin/activate
|
|
|
|
# Installa dipendenze
|
|
print_status "Installazione dipendenze Python..."
|
|
pip install -r backend/requirements.txt
|
|
print_success "Dipendenze installate!"
|
|
|
|
# Avvia MongoDB con Docker
|
|
print_status "Avvio MongoDB con Docker..."
|
|
cd backend
|
|
docker-compose up -d
|
|
cd ..
|
|
|
|
# Aspetta che MongoDB sia pronto
|
|
print_status "Attesa MongoDB..."
|
|
sleep 5
|
|
|
|
# Avvia backend in background
|
|
print_status "Avvio backend FastAPI..."
|
|
cd backend
|
|
python main.py &
|
|
BACKEND_PID=$!
|
|
cd ..
|
|
|
|
# Aspetta che il backend sia pronto
|
|
print_status "Attesa backend..."
|
|
sleep 3
|
|
|
|
# Avvia frontend
|
|
print_status "Avvio frontend..."
|
|
cd testing
|
|
http-server -p 3000 -o &
|
|
FRONTEND_PID=$!
|
|
cd ..
|
|
|
|
print_success "🎉 Tutto avviato!"
|
|
echo ""
|
|
echo "📱 Frontend: http://localhost:3000"
|
|
echo "🔧 Backend API: http://localhost:8000"
|
|
echo "🗄️ MongoDB: localhost:27017"
|
|
echo ""
|
|
echo "💡 Premi Ctrl+C per fermare tutto"
|
|
|
|
# Funzione per cleanup
|
|
cleanup() {
|
|
echo ""
|
|
print_status "Fermando servizi..."
|
|
kill $BACKEND_PID 2>/dev/null
|
|
kill $FRONTEND_PID 2>/dev/null
|
|
cd backend
|
|
docker-compose down
|
|
cd ..
|
|
print_success "Servizi fermati!"
|
|
exit 0
|
|
}
|
|
|
|
# Intercetta Ctrl+C
|
|
trap cleanup SIGINT
|
|
|
|
# Mantieni lo script in esecuzione
|
|
wait |