install.sh 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #!/bin/bash
  2. cd src/server
  3. printf "==========================\n"
  4. printf "|| OASIS Installer v0.4 ||\n"
  5. printf "==========================\n"
  6. sudo apt-get install -y git curl tar
  7. curl -sL http://deb.nodesource.com/setup_22.x | sudo bash -
  8. sudo apt-get install -y nodejs
  9. npm install .
  10. npm audit fix
  11. MODEL_DIR="../AI"
  12. LLM_FILE="oasis-42-1-chat.Q4_K_M.gguf"
  13. LLM_TAR="$LLM_FILE.tar.gz"
  14. LLM_URL="https://solarnethub.com/code/models/$LLM_TAR"
  15. EMB_DIR="$MODEL_DIR/embeddings"
  16. EMB_TAR="oasis-embeddings.tar.gz"
  17. EMB_URL="https://solarnethub.com/code/models/$EMB_TAR"
  18. EMB_FILE="$EMB_DIR/onnx/model_quantized.onnx"
  19. CONFIG_PATH="../configs/oasis-config.json"
  20. CHOICE="${OASIS_AI:-}"
  21. if [ -z "$CHOICE" ] && [ -t 0 ]; then
  22. echo ""
  23. echo "Do you want to enable AI features in Oasis?"
  24. echo ""
  25. echo " [1] Full AI: chat assistant (42) + smart navigation prompt (~3.9 GB)"
  26. echo " [2] Smart navigation only (~150 MB)"
  27. echo " [3] No AI features (no downloads, AI tabs hidden)"
  28. echo ""
  29. read -p "Choose [1/2/3] (default 3): " ANS
  30. case "$ANS" in
  31. 1) CHOICE="full" ;;
  32. 2) CHOICE="nav" ;;
  33. *) CHOICE="none" ;;
  34. esac
  35. fi
  36. if [ -z "$CHOICE" ]; then
  37. CHOICE="none"
  38. fi
  39. case "$CHOICE" in
  40. full)
  41. WANT_LLM=1
  42. WANT_EMB=1
  43. ;;
  44. nav)
  45. WANT_LLM=0
  46. WANT_EMB=1
  47. ;;
  48. *)
  49. WANT_LLM=0
  50. WANT_EMB=0
  51. ;;
  52. esac
  53. if [ "$WANT_LLM" = "1" ] && [ ! -f "$MODEL_DIR/$LLM_FILE" ]; then
  54. echo ""
  55. echo "downloading AI model [size: 3,8 GiB (4.081.004.224 bytes)] ..."
  56. curl -L -o "$MODEL_DIR/$LLM_TAR" "$LLM_URL"
  57. echo ""
  58. echo "extracting package: $LLM_TAR..."
  59. echo ""
  60. tar -xzf "$MODEL_DIR/$LLM_TAR" -C "$MODEL_DIR"
  61. rm "$MODEL_DIR/$LLM_TAR"
  62. fi
  63. if [ "$WANT_EMB" = "1" ] && [ ! -f "$EMB_FILE" ]; then
  64. echo ""
  65. echo "downloading embeddings model [size: ~60 MiB] ..."
  66. curl -L -o "$MODEL_DIR/$EMB_TAR" "$EMB_URL"
  67. echo ""
  68. echo "extracting package: $EMB_TAR..."
  69. echo ""
  70. tar -xzf "$MODEL_DIR/$EMB_TAR" -C "$MODEL_DIR"
  71. rm "$MODEL_DIR/$EMB_TAR"
  72. fi
  73. if [ -f "$CONFIG_PATH" ]; then
  74. AI_VAL="off"; NAV_VAL="off"
  75. [ "$WANT_LLM" = "1" ] && AI_VAL="on"
  76. [ "$WANT_EMB" = "1" ] && NAV_VAL="on"
  77. node -e "
  78. const fs = require('fs');
  79. const p = '$CONFIG_PATH';
  80. const cfg = JSON.parse(fs.readFileSync(p, 'utf8'));
  81. cfg.modules = cfg.modules || {};
  82. cfg.modules.aiMod = '$AI_VAL';
  83. cfg.modules.aiNavMod = '$NAV_VAL';
  84. fs.writeFileSync(p, JSON.stringify(cfg, null, 2) + '\n');
  85. "
  86. fi
  87. printf "==========================\n"
  88. printf "\nOASIS has been correctly deployed! ;)\n\n"
  89. printf "Run: 'sh oasis.sh' to start ...\n\n"