#!/bin/bash cd src/server printf "==========================\n" printf "|| OASIS Installer v0.4 ||\n" printf "==========================\n" sudo apt-get install -y git curl tar curl -sL http://deb.nodesource.com/setup_22.x | sudo bash - sudo apt-get install -y nodejs npm install . npm audit fix MODEL_DIR="../AI" LLM_FILE="oasis-42-1-chat.Q4_K_M.gguf" LLM_TAR="$LLM_FILE.tar.gz" LLM_URL="https://solarnethub.com/code/models/$LLM_TAR" EMB_DIR="$MODEL_DIR/embeddings" EMB_TAR="oasis-embeddings.tar.gz" EMB_URL="https://solarnethub.com/code/models/$EMB_TAR" EMB_FILE="$EMB_DIR/onnx/model_quantized.onnx" CONFIG_PATH="../configs/oasis-config.json" CHOICE="${OASIS_AI:-}" if [ -z "$CHOICE" ] && [ -t 0 ]; then echo "" echo "Do you want to enable AI features in Oasis?" echo "" echo " [1] Full AI: chat assistant (42) + smart navigation prompt (~3.9 GB)" echo " [2] Smart navigation only (~150 MB)" echo " [3] No AI features (no downloads, AI tabs hidden)" echo "" read -p "Choose [1/2/3] (default 3): " ANS case "$ANS" in 1) CHOICE="full" ;; 2) CHOICE="nav" ;; *) CHOICE="none" ;; esac fi if [ -z "$CHOICE" ]; then CHOICE="none" fi case "$CHOICE" in full) WANT_LLM=1 WANT_EMB=1 ;; nav) WANT_LLM=0 WANT_EMB=1 ;; *) WANT_LLM=0 WANT_EMB=0 ;; esac if [ "$WANT_LLM" = "1" ] && [ ! -f "$MODEL_DIR/$LLM_FILE" ]; then echo "" echo "downloading AI model [size: 3,8 GiB (4.081.004.224 bytes)] ..." curl -L -o "$MODEL_DIR/$LLM_TAR" "$LLM_URL" echo "" echo "extracting package: $LLM_TAR..." echo "" tar -xzf "$MODEL_DIR/$LLM_TAR" -C "$MODEL_DIR" rm "$MODEL_DIR/$LLM_TAR" fi if [ "$WANT_EMB" = "1" ] && [ ! -f "$EMB_FILE" ]; then echo "" echo "downloading embeddings model [size: ~60 MiB] ..." curl -L -o "$MODEL_DIR/$EMB_TAR" "$EMB_URL" echo "" echo "extracting package: $EMB_TAR..." echo "" tar -xzf "$MODEL_DIR/$EMB_TAR" -C "$MODEL_DIR" rm "$MODEL_DIR/$EMB_TAR" fi if [ -f "$CONFIG_PATH" ]; then AI_VAL="off"; NAV_VAL="off" [ "$WANT_LLM" = "1" ] && AI_VAL="on" [ "$WANT_EMB" = "1" ] && NAV_VAL="on" node -e " const fs = require('fs'); const p = '$CONFIG_PATH'; const cfg = JSON.parse(fs.readFileSync(p, 'utf8')); cfg.modules = cfg.modules || {}; cfg.modules.aiMod = '$AI_VAL'; cfg.modules.aiNavMod = '$NAV_VAL'; fs.writeFileSync(p, JSON.stringify(cfg, null, 2) + '\n'); " fi printf "==========================\n" printf "\nOASIS has been correctly deployed! ;)\n\n" printf "Run: 'sh oasis.sh' to start ...\n\n"