resources: - name: anything-llm-instance type: compute.v1.instance properties: zone: us-central1-a machineType: zones/us-central1-a/machineTypes/n1-standard-1 disks: - deviceName: boot type: PERSISTENT boot: true autoDelete: true initializeParams: sourceImage: projects/ubuntu-os-cloud/global/images/family/ubuntu-2004-lts diskSizeGb: 10 networkInterfaces: - network: global/networks/default accessConfigs: - name: External NAT type: ONE_TO_ONE_NAT metadata: items: - key: startup-script value: | #!/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 !SUB::USER::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!"