#!/usr/bin/env bash # Deploy ArcisVLM to GCP — creates VM with L4 GPU, installs Docker, builds stack set -euo pipefail PROJECT="arcisai-iot-platform" ZONE="us-central1-a" INSTANCE="arcisvlm-beta" MACHINE="g2-standard-8" GPU="nvidia-l4" DISK_SIZE="100GB" echo "=== Creating GCE instance: $INSTANCE ===" gcloud compute instances create "$INSTANCE" \ --project="$PROJECT" \ --zone="$ZONE" \ --machine-type="$MACHINE" \ --accelerator="type=$GPU,count=1" \ --maintenance-policy=TERMINATE \ --boot-disk-size="$DISK_SIZE" \ --boot-disk-type=pd-ssd \ --image-family=ubuntu-2204-lts \ --image-project=ubuntu-os-cloud \ --metadata=install-nvidia-driver=True \ --tags=http-server,https-server echo "=== Configuring firewall ===" gcloud compute firewall-rules create allow-arcisvlm-http \ --project="$PROJECT" \ --allow=tcp:80,tcp:443 \ --target-tags=http-server \ --description="Allow HTTP/HTTPS for ArcisVLM" 2>/dev/null || true echo "=== Waiting for instance to boot (60s) ===" sleep 60 echo "=== Copying code to instance ===" SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" cd "$PROJECT_DIR" tar czf /tmp/arcisvlm-deploy.tar.gz \ --exclude='.git' --exclude='__pycache__' --exclude='node_modules' \ --exclude='.next' --exclude='exports' --exclude='profiling' \ --exclude='checkpoints/*.pt' --exclude='*.onnx*' --exclude='.claude' \ . gcloud compute scp /tmp/arcisvlm-deploy.tar.gz "$INSTANCE":~ --zone="$ZONE" --project="$PROJECT" gcloud compute scp deploy/setup-instance.sh "$INSTANCE":~ --zone="$ZONE" --project="$PROJECT" echo "=== Running setup on instance ===" gcloud compute ssh "$INSTANCE" --zone="$ZONE" --project="$PROJECT" \ --command="chmod +x ~/setup-instance.sh && ~/setup-instance.sh" IP=$(gcloud compute instances describe "$INSTANCE" --zone="$ZONE" --project="$PROJECT" \ --format='get(networkInterfaces[0].accessConfigs[0].natIP)') echo "" echo "=============================================" echo " ArcisVLM deployed at: http://$IP" echo " Instance: $INSTANCE ($ZONE)" echo "" echo " REMEMBER: Destroy when testing complete!" echo " Run: ./deploy/destroy-gcp.sh" echo "============================================="