Skip to main content
Pick where GAIA runs. All options need about 8 GB of RAM, which is what drives the price.

Pick one

Prices are list prices from 2026-10-14. Check the provider before you buy. A Linux server is cheapest and is the path we test. Render and Railway bill per service, so the same 8 GB costs several times more.

Linux server

1

Create the server

Use 4 vCPU and 8 GB RAM. Allow ports 80 and 443 (or 3000 without a domain).
2

Follow the walkthrough

Run the steps in the walkthrough over SSH.
3

Add a domain (optional)

Point the domain’s DNS A record at the server, then:

DigitalOcean Marketplace

Once listed, create a Droplet from the GAIA listing (8 GB / 4 vCPU or bigger), wait for first boot, then open http://<Droplet IP>/setup. The image comes with Docker and the CLI, makes its own secrets, and only allows SSH, HTTP and HTTPS.
The Packer template lives in deploy/digitalocean/, in the format of DigitalOcean’s marketplace-partners repository. It runs their 03-force-ssh-logout.sh, 90-cleanup.sh and 99-img-check.sh at a pinned commit.
  1. Install Packer and the plugin: packer plugins install github.com/digitalocean/digitalocean.
  2. Create a DigitalOcean API token and export it: export DIGITALOCEAN_TOKEN=....
  3. From deploy/digitalocean/, run packer build marketplace-image.json. The build ends with 99-img-check.sh; fix every [FAIL] before submitting.
  4. Create one Droplet from the snapshot and check that http://<IP>/setup loads and sudo -iu gaia gaia doctor passes.
  5. Submit the snapshot in the Vendor Portal with the listing copy, the quick-start text from files/etc/update-motd.d/99-one-click, and links to these docs. If you have no Vendor Portal login, apply at marketplace.digitalocean.com/vendors.

Coolify

Uses deploy/coolify/gaia.yaml.
1

Create the resource

In your Coolify project choose New → Docker Compose Empty, paste the contents of the file, and save. Use a server with at least 4 vCPU and 8 GB of RAM.
2

Set the domain

Under Domains, set the domain for the proxy service. Coolify issues the certificate and generates the passwords.
3

Add your AI key and deploy

Optionally set OPENAI_API_KEY in Environment Variables, or add a provider at /setup later. Deploy, then open the domain and go to /setup.
Not yet tested on a live Coolify. If a service fails, its logs and GET /health/ready show which one. Please report what you find.

Render

Uses the Blueprint render.yaml. It needs a Cloudinary account, because a Render disk cannot be shared between services (BLOB_STORE=cloudinary).
1

Create the Blueprint

Click the button below, or in the Render Dashboard choose New → Blueprint and connect the GAIA repository (or your fork), then apply it.Deploy to RenderRender asks for the values marked sync: false. Enter your CLOUDINARY_CLOUD_NAME, CLOUDINARY_API_KEY and CLOUDINARY_API_SECRET, your OPENAI_API_KEY (or leave it empty), and pending for the other three for now.
2

Fill in the private addresses

Render gives every private service a hostname with a random suffix, and a Blueprint cannot build a URL from it. Once the services exist, copy each internal address from its Connect panel and set these on gaia-backend (the worker reads them from there) and gaia-web:Each address looks like gaia-mongo-a1b2:27017. Save, and Render redeploys.
3

Open GAIA

Open the gaia service’s onrender.com URL (or add your domain to it) and go to /setup.
Not yet deployed end to end. If a service fails, check its logs and GET /health/ready on the gaia URL. Please report what you find.
Render makes the secrets once and keeps them. Services use :latest images. To pin one, put a tag like v0.7.0 in each image URL.

Railway

There is no template yet, so you create the services yourself. You also need a Cloudinary account, because a Railway volume belongs to one service (BLOB_STORE=cloudinary).
Create these in one project (New, Docker Image, or GitHub Repo for the proxy). Then add a public domain to gaia on port 8080.Shared variables for gaia-backend and gaia-worker (Project Settings → Shared Variables, then reference them):
Not yet deployed end to end on Railway. Check GET /health/ready on your domain after the first deploy.

After you deploy

1

Open /setup

Go to your address followed by /setup: http://<server IP>:3000/setup for gaia up without a domain, http://<Droplet IP>/setup, or your Render, Railway or own domain.
2

Create the admin account

The first account is the admin. Use a password of at least 8 characters.
3

Pick an AI provider

Paste a key for OpenAI, OpenRouter or Gemini, or use a local Ollama. Skip it if you set the key during deploy.
Web search, bots and integrations are optional. Add them later in Settings, Providers & Tools; see the walkthrough.