diff --git a/scripts/deploy.sh b/scripts/deploy.sh index f2d4c61..3264f7e 100644 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -42,9 +42,11 @@ output=$(runpodctl create pod \ --vcpu $CPU_COUNT \ --ports "8080/http,8888/http" \ --env "SIA_REPO_URL=git.nielsgeens.be/llm/SIA" \ + --env "SIA_GITHUB_API_KEY=$SIA_GITHUB_API_KEY" \ --env "SIA_GITEA_API_KEY=$SIA_GITEA_API_KEY" \ --env "SIA_HF_API_KEY=$SIA_HF_API_KEY" \ --env "SIA_QWQ_ENABLED=1" \ + --env "JUPYTER_PASSWORD=1" \ ) echo "$output" diff --git a/scripts/github_keys.sh b/scripts/github_keys.sh new file mode 100644 index 0000000..2598e58 --- /dev/null +++ b/scripts/github_keys.sh @@ -0,0 +1,56 @@ +#!/bin/bash +set -e + +# Check if required environment variables are set +if [ -z "$SIA_GITHUB_API_KEY" ]; then + echo "Error: SIA_GITHUB_API_KEY environment variable is not set" + exit 1 +fi + +if [ -z "$SIA_REPO_URL" ]; then + echo "Error: SIA_REPO_URL environment variable is not set" + exit 1 +fi + +# Install dependencies +apt-get update +apt-get install -y jq + +# Create SSH directory if it doesn't exist +mkdir -p ~/.ssh +chmod 700 ~/.ssh + +# Generate SSH key if it doesn't exist +if [ ! -f ~/.ssh/sia_repo ]; then + echo "Generating new SSH key..." + ssh-keygen -t ed25519 -f ~/.ssh/sia_repo -N "" +fi + +# Get the public key +SSH_PUBLIC_KEY=$(cat ~/.ssh/sia_repo.pub) + +# Add host key to known_hosts to avoid verification prompt +echo "Adding host key to known_hosts..." +ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts +chmod 600 ~/.ssh/known_hosts + +# Check if a key with title "sia" already exists and delete it +echo "Checking for existing SSH key in GitHub..." +EXISTING_KEYS=$(curl -s -X GET "https://api.github.com/user/keys" \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: token $SIA_GITHUB_API_KEY") +KEY_ID=$(echo "$EXISTING_KEYS" | jq -r '.[] | select(.title=="sia") | .id') +if [ ! -z "$KEY_ID" ]; then + echo "Found existing key with ID $KEY_ID, deleting..." + curl -X DELETE "https://api.github.com/user/keys/$KEY_ID" \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: token $SIA_GITHUB_API_KEY" +fi + +# Add the SSH key to GitHub using the API +echo "Adding SSH key to GitHub using API..." +curl -X POST "https://api.github.com/user/keys" \ + -H "Accept: application/vnd.github+json" \ + -H "Content-Type: application/json" \ + -H "Authorization: token $SIA_GITHUB_API_KEY" \ + -d "{\"title\":\"sia\", \"key\":\"$SSH_PUBLIC_KEY\"}" \ No newline at end of file