Team Ai
Apppublic

javitechjkd/backtestingv2

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
setup.sh159 linesDownload Raw Back to root
1#!/bin/bash2 3# Backtesting App V2 - Setup Script para macOS/Linux4# Configura el entorno de desarrollo completo5 6# Configuración de colores para output7RED='\033[0;31m'8GREEN='\033[0;32m'9YELLOW='\033[1;33m'10BLUE='\033[0;34m'11NC='\033[0m' # No Color12 13PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"14 15echo ""16echo "=========================================="17echo "  Backtesting App V2 - Setup"18echo "=========================================="19echo ""20 21# Detectar arquitectura (Apple Silicon vs Intel)22ARCH=$(uname -m)23if [ "$ARCH" = "arm64" ]; then24    echo -e "${BLUE}Detectado: Apple Silicon (M1/M2/M3)${NC}"25    APPLE_SILICON=true26else27    echo -e "${BLUE}Detectado: $ARCH${NC}"28    APPLE_SILICON=false29fi30echo ""31 32# Verificar versión de Python33echo "Verificando Python..."34if command -v python3 &> /dev/null; then35    PYTHON_VERSION=$(python3 --version | awk '{print $2}')36    echo -e "${GREEN}Python $PYTHON_VERSION encontrado${NC}"37else38    echo -e "${RED}ERROR: Python 3 no encontrado${NC}"39    echo ""40    echo "Por favor instala Python 3.11 o superior:"41    if [ "$APPLE_SILICON" = true ]; then42        echo "   brew install python@3.11"43    else44        echo "   Visita: https://www.python.org/downloads/"45    fi46    exit 147fi48echo ""49 50# Crear entorno virtual si no existe51if [ ! -d "venv" ]; then52    echo "Creando entorno virtual..."53    python3 -m venv venv54    echo -e "${GREEN}Entorno virtual creado${NC}"55else56    echo -e "${YELLOW}Entorno virtual ya existe${NC}"57fi58echo ""59 60# Activar entorno virtual61echo "Activando entorno virtual..."62source venv/bin/activate63echo ""64 65# Actualizar pip66echo "Actualizando pip..."67pip install --upgrade pip68echo ""69 70# Instalar dependencias71echo "Instalando dependencias..."72if [ "$APPLE_SILICON" = true ]; then73    echo -e "${YELLOW}Usando configuración optimizada para Apple Silicon${NC}"74    # Para Apple Silicon, algunas librerías necesitan flags especiales75    ARCHFLAGS="-arch arm64" pip install --no-cache-dir -r requirements.txt76else77    pip install -r requirements.txt78fi79echo ""80 81# Crear directorios necesarios82echo "Creando directorios..."83mkdir -p logs cache config84echo -e "${GREEN}Directorios creados${NC}"85echo ""86 87# Verificar/crear archivo .env88if [ ! -f ".env" ]; then89    echo "Creando archivo .env..."90    if [ -f ".env.example" ]; then91        cp .env.example .env92        echo -e "${GREEN}.env creado desde .env.example${NC}"93    else94        # Crear .env básico95        cat > .env << EOF96# API Configuration97DEBUG=True98ENVIRONMENT=development99LOG_LEVEL=INFO100API_HOST=0.0.0.0101API_PORT=8000102 103# Cache Configuration104ENABLE_CACHE=True105CACHE_EXPIRY_HOURS=24106 107# MetaTrader 5 Configuration (opcional)108# MT5_LOGIN=109# MT5_PASSWORD=110# MT5_SERVER=111EOF112        echo -e "${GREEN}.env creado con configuración por defecto${NC}"113    fi114else115    echo -e "${YELLOW}.env ya existe${NC}"116fi117echo ""118 119# Dar permisos de ejecución a los scripts120echo "Configurando permisos de scripts..."121chmod +x setup.sh start.sh stop.sh restart.sh 2>/dev/null122echo -e "${GREEN}Permisos configurados${NC}"123echo ""124 125echo ""126echo "=========================================="127echo "  Setup Complete! ✓"128echo "=========================================="129echo ""130echo -e "${GREEN}La aplicación está lista para usar${NC}"131echo ""132echo "Para iniciar la aplicación:"133echo -e "   ${BLUE}./start.sh${NC}"134echo ""135echo "Para detener la aplicación:"136echo -e "   ${BLUE}./stop.sh${NC}"137echo ""138echo "Para reiniciar la aplicación:"139echo -e "   ${BLUE}./restart.sh${NC}"140echo ""141echo "To start the application:"142echo ""143echo "1. FastAPI Backend:"144echo "   python api/main.py"145echo ""146echo "2. Streamlit UI (in another terminal):"147echo "   cd backtesting_app/backtesting_app"148echo "   streamlit run app.py"149echo ""150echo "3. Or use Docker:"151echo "   docker-compose up -d"152echo ""153echo "Endpoints:"154echo "  - API:       http://localhost:8000"155echo "  - API Docs:  http://localhost:8000/docs"156echo "  - Health:    http://localhost:8000/health"157echo "  - Streamlit: http://localhost:8501"158echo ""159