Skip to content

GCP

XeroML runs on Google Cloud Platform via Google Kubernetes Engine (GKE), Cloud Run, or a Compute Engine VM with Docker Compose.

ComponentGCP Service
Web applicationGKE Autopilot or Cloud Run
WorkerGKE or Cloud Run
PostgreSQLCloud SQL (PostgreSQL)
RedisMemorystore (Redis)
Blob storageCloud Storage (GCS)
TLS / IngressGoogle Cloud Load Balancer

GKE Deployment

1. Create GKE Cluster

Terminal window
gcloud container clusters create-auto xeroml-cluster \
--region us-central1 \
--project your-project-id

2. Set Up Cloud SQL

Terminal window
gcloud sql instances create xeroml-postgres \
--database-version=POSTGRES_15 \
--tier=db-n1-standard-1 \
--region=us-central1
gcloud sql databases create xeroml --instance=xeroml-postgres
gcloud sql users create xeroml --instance=xeroml-postgres --password=<secure-password>

3. Set Up Memorystore

Terminal window
gcloud redis instances create xeroml-redis \
--size=1 \
--region=us-central1 \
--redis-version=redis_7_0

4. Deploy with Helm

Terminal window
# Get GKE credentials
gcloud container clusters get-credentials xeroml-cluster --region us-central1
# Deploy XeroML
helm install xeroml xeroml/xeroml \
--namespace xeroml \
--create-namespace \
-f values-gcp.yaml

values-gcp.yaml:

database:
url: "postgresql://xeroml:password@/xeroml?host=/cloudsql/project:region:instance"
redis:
url: "redis://10.x.x.x:6379"
ingress:
enabled: true
className: gce
host: xeroml.yourdomain.com
annotations:
kubernetes.io/ingress.global-static-ip-name: xeroml-ip
networking.gke.io/managed-certificates: xeroml-cert

Cloud Run

For lighter deployments, deploy the XeroML web container to Cloud Run:

Terminal window
gcloud run deploy xeroml-web \
--image ghcr.io/xeroml/xeroml:latest \
--platform managed \
--region us-central1 \
--port 3000 \
--min-instances 1 \
--max-instances 10 \
--set-env-vars DATABASE_URL="...",NEXTAUTH_SECRET="..." \
--allow-unauthenticated

Compute Engine (Single Server)

For development or small deployments, use Docker Compose on a Compute Engine VM:

Terminal window
gcloud compute instances create xeroml-vm \
--machine-type=n1-standard-2 \
--image-family=ubuntu-2204-lts \
--image-project=ubuntu-os-cloud \
--zone=us-central1-a
# SSH in, install Docker, follow Docker Compose guide

Docker Compose Guide