arcisvlm / deploy /deploy-gcp.sh
Hardik Sanghvi
feat: integrate Gemma 4 E2B backbone for production-quality VLM inference
7a564e3
Raw
History Blame Contribute Delete
2.26 kB
#!/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 "============================================="