anything-llm/cloud-deployments/digitalocean/terraform/user_data.tp1

60 lines
1.9 KiB
Bash

#!/bin/bash
# check output of userdata script with sudo tail -f /var/log/cloud-init-output.log
sudo apt-get update
sudo apt-get install -y docker.io
sudo usermod -a -G docker ubuntu
curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
sudo systemctl enable docker
sudo systemctl start docker
sudo apt-get install -y git
git clone https://github.com/Mintplex-Labs/anything-llm.git /home/anything-llm
cd /home/anything-llm/docker
cat >> .env << END
${env_content}
UID="1000"
GID="1000"
NO_DEBUG="true"
END
echo "Set .env file"
cd ../frontend
sudo rm -rf .env.production
sudo cat >> .env.production << END
GENERATE_SOURCEMAP=true
VITE_API_BASE="/api"
END
echo "Set .env.production file"
cd ../docker
sudo docker-compose up -d --build
echo "Container ID: $(sudo docker ps --latest --quiet)"
sudo docker container exec -u 0 -t $(sudo docker ps --latest --quiet) mkdir -p /app/server/storage /app/server/storage/documents /app/server/storage/vector-cache /app/server/storage/lancedb
echo "Placeholder folders in storage created."
sudo docker container exec -u 0 -t $(sudo docker ps --latest --quiet) touch /app/server/storage/anythingllm.db
echo "SQLite DB placeholder set."
sudo docker container exec -u 0 -t $(sudo docker ps --latest --quiet) chown -R anythingllm:anythingllm /app/collector /app/server
echo "File permissions corrected."
export ONLINE=$(curl -Is http://localhost:3001/api/ping | head -n 1|cut -d$' ' -f2)
echo "Health check: $ONLINE"
if [ "$ONLINE" = 200 ]; then
echo "Running migrations..." && curl -Is http://localhost:3001/api/migrate | head -n 1 | cut -d$' ' -f2
fi
echo "Setup complete! AnythingLLM instance is now online!"