107 lines
2.7 KiB
Bash
Executable File
107 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#SIA_INSTALL_NO_WEB=1
|
|
SIA_INSTALL_NO_NOTEBOOK=1
|
|
#SIA_INSTALL_NO_CORE=1
|
|
#SIA_INSTALL_NO_ITB=1
|
|
SIA_INSTALL_NO_MISTRAL_INFER=1
|
|
#SIA_INSTALL_NO_GEMMA_INFER=1
|
|
#SIA_INSTALL_NO_GEMMA_TRAIN=1
|
|
|
|
trap 'return 1' ERR
|
|
|
|
# Check if required environment variables are set
|
|
if [ -z "$SIA_REPO_URL" ]; then
|
|
echo "Error: SIA_REPO_URL environment variable is not set"
|
|
return 1
|
|
fi
|
|
|
|
if [ -z "$SIA_REPO_USER" ]; then
|
|
echo "Error: SIA_REPO_USER environment variable is not set"
|
|
return 1
|
|
fi
|
|
|
|
if [ -z "$SIA_REPO_PAT" ]; then
|
|
echo "Error: SIA_REPO_PAT environment variable is not set"
|
|
return 1
|
|
fi
|
|
|
|
# Install required packages
|
|
apt-get update
|
|
apt-get install -y \
|
|
build-essential \
|
|
cmake \
|
|
cuda-toolkit \
|
|
curl \
|
|
git \
|
|
gnupg \
|
|
jq \
|
|
libcurl4-nss-dev \
|
|
python3-dev \
|
|
python3-venv \
|
|
tmux \
|
|
vim \
|
|
wget \
|
|
;
|
|
|
|
# Install Chrome
|
|
if [ -z "${SIA_INSTALL_NO_ITB}" ]; then
|
|
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | gpg --dearmor -o /etc/apt/trusted.gpg.d/google.gpg
|
|
echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list
|
|
apt-get update && \
|
|
apt-get install -y \
|
|
google-chrome-stable
|
|
fi
|
|
|
|
# Install Node.js
|
|
if [ -z "${SIA_INSTALL_NO_CORE}" ]; then
|
|
echo "Installing Node.js..."
|
|
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
|
|
apt-get install -y nodejs
|
|
fi
|
|
|
|
# Install Rust
|
|
curl https://sh.rustup.rs -sSf | bash -s -- -y
|
|
export PATH="/root/.cargo/bin:${PATH}"
|
|
|
|
# Install llama.cpp
|
|
cd /
|
|
curl -O https://git.nielsgeens.be/api/packages/llm/generic/llama.cpp/b5269/llama.cpp.tar
|
|
tar -xf /llama.cpp.tar -C /usr/local/bin --wildcards --no-anchored "llama-*"
|
|
tar -xf /llama.cpp.tar -C /usr/local/lib --wildcards --no-anchored "*.so"
|
|
rm llama.cpp.tar
|
|
|
|
# Create directory structure
|
|
echo "Creating directory structure..."
|
|
mkdir -p "/root/data/iterations"
|
|
mkdir -p "/root/desktop"
|
|
mkdir -p "/root/venvs"
|
|
|
|
# Clone SIA repository
|
|
if [ ! -d "/root/sia" ]; then
|
|
echo "Cloning SIA repository..."
|
|
git clone --recursive "https://$SIA_REPO_USER:$SIA_REPO_PAT@${SIA_REPO_URL#https://}" "/root/sia"
|
|
|
|
echo "Configuring git user and email..."
|
|
cd "/root/sia"
|
|
git config --global user.name "Niels Geens"
|
|
git config --global user.email "niels.geens@gmail.com"
|
|
git config --global core.editor vim
|
|
fi
|
|
|
|
# Install SIA dependencies
|
|
cd /root/desktop
|
|
source "/root/sia/scripts/install.sh"
|
|
|
|
# Finetune model
|
|
if [ -z "${SIA_INSTALL_NO_TRAIN}" ]; then
|
|
echo "Finetuning model..."
|
|
/root/sia/scripts/train.sh /root/models/bootstrap
|
|
ln -s /root/models/bootstrap /root/models/current
|
|
fi
|
|
|
|
# Start SIA using restart script
|
|
if [ -z "${SIA_INSTALL_NO_CORE}" ]; then
|
|
echo "Run restart script..."
|
|
"/root/sia/scripts/restart.sh"
|
|
fi |