113 lines
2.4 KiB
Bash
113 lines
2.4 KiB
Bash
|
#!/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 app
|
||
|
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
|