Download scripts/start.sh from Paritosh-Sovereign/Friday-Subconscious: direct link, hf CLI and curl.
- Browser
- Download file 4.89 kB
-
https://huggingface.co/spaces/Paritosh-Sovereign/Friday-Subconscious/resolve/main/scripts/start.sh
- Command line
-
hf download hf://spaces/Paritosh-Sovereign/Friday-Subconscious/scripts/start.sh
-
curl -L -o start.sh https://huggingface.co/spaces/Paritosh-Sovereign/Friday-Subconscious/resolve/main/scripts/start.sh
4.89 kB
| # ============================================================ | |
| # Project Jarvis β Start Script | |
| # Cloud-First mode: Ollama is optional when OPENAI_API_KEY is set. | |
| # ============================================================ | |
| SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" | |
| PROJECT_DIR="$(dirname "$SCRIPT_DIR")" | |
| BACKEND_DIR="$PROJECT_DIR/backend" | |
| VENV_DIR="$BACKEND_DIR/venv" | |
| PID_DIR="$PROJECT_DIR/.pids" | |
| ENV_FILE="$PROJECT_DIR/.env" | |
| export PATH="$PROJECT_DIR/bin:$PATH" | |
| # Load env file if it exists | |
| if [ -f "$ENV_FILE" ]; then | |
| export $(grep -v '^#' "$ENV_FILE" | xargs) | |
| fi | |
| # Colors | |
| GREEN='\033[0;32m' | |
| YELLOW='\033[1;33m' | |
| CYAN='\033[0;36m' | |
| RED='\033[0;31m' | |
| PURPLE='\033[0;35m' | |
| NC='\033[0m' | |
| mkdir -p "$PID_DIR" | |
| echo "" | |
| echo -e "${PURPLE}ββββββββββββββββββββββββββββββββββββββββββββββββββββ${NC}" | |
| echo -e "${PURPLE}β PROJECT FRIDAY β Starting... β${NC}" | |
| echo -e "${PURPLE}ββββββββββββββββββββββββββββββββββββββββββββββββββββ${NC}" | |
| echo "" | |
| # ββ Step 1: Check API Key / Mode βββββββββββββββββββββββββββββ | |
| echo -e "${CYAN}[1/3] Checking AI backend mode...${NC}" | |
| if [ -n "$OPENAI_API_KEY" ]; then | |
| echo -e " ${GREEN}β${NC} OpenAI API Key found β running in CLOUD mode π" | |
| echo -e " ${GREEN}β${NC} Ollama (local LLM) will NOT be started β saving your RAM!" | |
| else | |
| echo -e " ${YELLOW}β ${NC} No OPENAI_API_KEY found β falling back to LOCAL mode (Ollama)" | |
| if ! command -v ollama &>/dev/null; then | |
| echo -e " ${RED}β Ollama not installed. Run setup.sh first or add OPENAI_API_KEY to .env${NC}" | |
| exit 1 | |
| fi | |
| if ! pgrep -x "ollama" &>/dev/null; then | |
| echo -e " ${YELLOW}Starting Ollama service...${NC}" | |
| ollama serve &>/dev/null & | |
| echo $! > "$PID_DIR/ollama.pid" | |
| sleep 3 | |
| echo -e " ${GREEN}β${NC} Ollama started" | |
| else | |
| echo -e " ${GREEN}β${NC} Ollama already running" | |
| fi | |
| fi | |
| # ββ Step 2: Activate Virtual Environment βββββββββββββββββββββ | |
| echo "" | |
| echo -e "${CYAN}[2/3] Activating Python environment...${NC}" | |
| if [ ! -d "$VENV_DIR" ]; then | |
| echo -e " ${RED}β Virtual environment not found. Run setup.sh first.${NC}" | |
| exit 1 | |
| fi | |
| source "$VENV_DIR/bin/activate" | |
| echo -e " ${GREEN}β${NC} Virtual environment activated" | |
| # ββ Step 3: Start FastAPI Backend ββββββββββββββββββββββββββββ | |
| echo "" | |
| echo -e "${CYAN}[3/3] Starting Friday backend...${NC}" | |
| # Kill any existing instance | |
| if [ -f "$PID_DIR/backend.pid" ]; then | |
| OLD_PID=$(cat "$PID_DIR/backend.pid") | |
| if kill -0 "$OLD_PID" 2>/dev/null; then | |
| echo -e " ${YELLOW}Stopping existing backend (PID: $OLD_PID)...${NC}" | |
| kill "$OLD_PID" 2>/dev/null | |
| sleep 1 | |
| fi | |
| fi | |
| # Start the backend | |
| cd "$BACKEND_DIR" | |
| "$VENV_DIR/bin/python" -m uvicorn main:app --host 0.0.0.0 --port 7777 --log-level info & | |
| BACKEND_PID=$! | |
| echo "$BACKEND_PID" > "$PID_DIR/backend.pid" | |
| # Wait for it to be ready | |
| echo -e " ${YELLOW}Waiting for backend to initialize...${NC}" | |
| for i in {1..30}; do | |
| if curl -s http://localhost:7777/health/ping &>/dev/null; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| if curl -s http://localhost:7777/health/ping &>/dev/null; then | |
| echo -e " ${GREEN}β${NC} Backend started (PID: $BACKEND_PID)" | |
| else | |
| echo -e " ${YELLOW}β ${NC} Backend is starting (may need a moment)" | |
| fi | |
| # ββ Done βββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| echo "" | |
| echo -e "${GREEN}ββββββββββββββββββββββββββββββββββββββββββββββββββββ${NC}" | |
| echo -e "${GREEN}β F.R.I.D.A.Y. IS RUNNING! π β${NC}" | |
| echo -e "${GREEN}ββββββββββββββββββββββββββββββββββββββββββββββββββββ${NC}" | |
| echo "" | |
| echo -e " ${CYAN}Neural HUD:${NC} Launching locally..." | |
| echo -e " ${CYAN}Dashboard:${NC} http://localhost:7777" | |
| echo "" | |
| # Launch the Sovereign HUD (The Local App) | |
| echo -e "${YELLOW}Starting visual interface...${NC}" | |
| "$VENV_DIR/bin/python" "$PROJECT_DIR/app/friday_gui.py" & | |
| GUI_PID=$! | |
| echo "$GUI_PID" > "$PID_DIR/gui.pid" | |
| echo -e " ${GREEN}β${NC} FRIDAY Sovereign HUD initialized." | |
| echo -e " ${YELLOW}To stop:${NC} bash $SCRIPT_DIR/stop.sh" | |
| echo "" | |
| # Follow the backend logs in the background, but keep terminal open for GUI exit | |
| wait $BACKEND_PID | |