Skip to content

Deploy an AI Agent

Deployment · Updated May 2026

Coming from another cloud?

▸DigitalOcean·AI Agent Droplet

This Quake AI feature maps to DigitalOcean’s AI Agent Droplet.

Deploy an AI agent

Stand up an AI agent framework on a Quake AI instance using Docker Compose. An agent connects a language model to tools, memory, and external services. You control the model provider, data, and runtime on infrastructure you operate.

AI agent loop on Quake AIA user prompt reaches the agent on the VM, which calls an LLM, optionally invokes a tool, and returns the responseTool / APILLM provider(OpenAI / Ollama)Agent UI(Flowise on VM)UserTool / APILLM provider(OpenAI / Ollama)Agent UI(Flowise on VM)UserPromptPlan + chatTool call requestInvoke toolTool resultResult + chatFinal answerResponseClick to zoom
Agent on a Quake AI instance: the UI brokers between the user, an LLM provider, and tools the model invokes

Monthly cost estimate

Pricing calculator ↗

Sized as a custom package on dedicated vCPU.

Starting template$61.00/mo

Monthly total for the required template above. Use the configurator below to add optional pieces and see the total update.

What each resource is for

m2a.large

m2a.large · 2 dedicated vCPU, 8 GiB RAM, 0.5 Gbps

$66.00/mo

Compute shown per role at custom-package rates ($29/dedicated vCPU, $7.25/shared vCPU, $1/GiB RAM). The headline above is the billed total: the cheaper of a named plan and the custom package, plus add-ons.

Included in baseline

m2a.large

2 dedicated vCPU, 8 GiB RAM, 0.5 Gbps

$66.00

Compute + RAM rate basis

2 vCPU + 8 GiB RAM at $29/dedicated vCPU, $7.25/shared vCPU, $1/GiB RAM (regular). Totals apply the flat −$5/mo package promotion.

—

Package promotional discount

Flat −$5.00/mo on the custom package (same promotion as named plans).

$-5.00

Included at no charge

These line items are zero on Quake AI. Many other providers meter them separately.

Data transfer (inbound and outbound)

Unlimited data transfer on every plan; Quake AI does not meter per-GB egress.

AWS, GCP, and Azure meter outbound transfer per GB. DigitalOcean and Hetzner include an allowance on compute plans, then charge overage.

Learn more
$0.00

Private networking

Private networks, subnets, Neutron routers, and security groups are included with the plan.

VPC objects are usually free to create elsewhere, but NAT gateways bill hourly plus per-GB processed. Quake AI uses router SNAT with no separate NAT line item.

$0.00

Control-plane API requests

OpenStack API calls for provisioning and management are included.

Some managed services on other clouds meter API calls or charge for premium control-plane features.

$0.00

Dev/test vs production

Start on shared CPU for dev/test, then promote to dedicated for production with a flavor resize. The network, storage, and template stay the same.

Dev/test on shared CPU

Burstable s1a flavors; suited to prototyping and low or bursty load.

$11.50/mo

Production on dedicated CPU

The headline estimate above; predictable steady-load performance.

$61.00/mo

Saves $49.50/mo while you build on shared CPU.

Shared flavors carry less RAM (m2a.large (8 GiB RAM) -> s1a.small (2 GiB RAM)). A resize reboots the instance; data on attached volumes persists. Size the dedicated flavor for the RAM your production workload needs.

Pricing data last validated: . For current rates, check quake.ai/pricing.

Prerequisites#

  • A Quake AI account with an active project
  • An SSH key pair added to your project
  • An API key from an AI model provider (OpenAI, Anthropic, Google, or OpenRouter for multi-provider access with a single key), or a self-hosted Ollama instance

Choose a framework#

FrameworkBest forDocker image
OpenClawMessaging bots (Telegram, Slack, Discord); 3,200+ community skillsghcr.io/openclaw/openclaw
FlowiseVisual agent and RAG pipeline builderflowiseai/flowise
n8nWorkflow automation with AI nodes; connects to 400+ servicesn8nio/n8n
Custom stackFull control; compose any LLM + tools + memoryN/A

OpenClaw has a dedicated guide with a Console Apps deployment option (Compute > Apps). The steps below cover the general Docker Compose pattern and walk through Flowise as a concrete example.

Step 1: Create a VM#

Create a new instance:

  • Image: Ubuntu-24.04
  • Flavor: m2a.large
  • Network: Attach to your project network
  • Security group: Allow inbound TCP on port 22 (SSH) and 3000 (agent UI; restrict to your IP)
  • Key pair: Select your SSH key pair

Assign a floating IP after the instance launches.

Use m2a.xlarge if running a local model on the same VM.

Step 2: Install Docker#

SSH into your VM:

ssh ubuntu@YOUR_FLOATING_IP

Install Docker and Docker Compose:

curl -fsSL https://get.docker.com | sh

Add your user to the Docker group so you can run commands without sudo:

sudo usermod -aG docker ubuntu
newgrp docker

Group membership changes take effect on your next login. The newgrp docker line above activates the group in your current shell. If you skip it or open a new shell, log out and SSH back in before you run docker commands.

Confirm the install with a command that needs the daemon socket:

docker run --rm hello-world

A daemon-less check such as docker --version passes even when the group is not active yet, so it hides this gotcha.

Step 3: Deploy Flowise#

Create a project directory:

bash
mkdir -p ~/flowise && cd ~/flowise

Create a docker-compose.yml. The steps below were last verified against Flowise 3.1.2; pinning the tag keeps the bootstrap flow predictable, since Flowise has reshaped its auth surface across releases.

YAML
services:
  flowise:
    image: flowiseai/flowise:3.1.2
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - ./data:/root/.flowise
    environment:
      - PORT=3000

Start the service:

bash
docker compose up -d

Verify it is running:

bash
docker compose ps

Once docker compose ps shows the flowise container as Up, open http://YOUR_FLOATING_IP:3000 in your browser.

First-time setup#

Flowise 3.x bootstraps an admin account from the browser UI on the first visit. When you open http://YOUR_FLOATING_IP:3000, Flowise redirects you to /signin. Click Register and create the first account using a valid email address. The first account becomes the workspace administrator.

If you need to follow the container output during boot, run docker compose logs -f flowise in a separate terminal.

Step 4: Connect a model provider#

In the Flowise UI, navigate to Credentials and add your AI provider API key. Flowise supports OpenAI, Anthropic, Google Gemini, Azure OpenAI, and others.

If you are running Ollama locally, configure the Ollama node to point to http://localhost:11434 (or the Ollama VM's private IP if it is on a separate instance).

Step 5: Build your first flow#

In Flowise, create a new Chatflow. The basic pattern:

  1. Add a Chat Model node (e.g., ChatOpenAI, ChatOllama)
  2. Add a Conversational Retrieval QA Chain or ReAct Agent node
  3. Add a Buffer Memory node for conversation history
  4. Connect them and save

Use the built-in chat interface to test your agent before integrating it with an external system.

Deploying n8n instead#

n8n suits automation-first use cases: connecting your agent to webhooks, databases, and external APIs without writing code.

YAML
services:
  n8n:
    image: n8nio/n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    volumes:
      - ./n8n-data:/home/node/.n8n
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=change-this-password
      - WEBHOOK_URL=http://YOUR_FLOATING_IP:5678

Access the UI at http://YOUR_FLOATING_IP:5678. n8n's AI nodes support OpenAI-compatible APIs, which means you can point them at Ollama for local inference.

Persisting data across restarts#

All three frameworks write state to a local directory inside the container. The volumes mapping in each compose file ensures that data survives container updates and restarts. Back up the volume directory before updating images:

bash
docker compose down
cp -r ./data ./data-backup-$(date +%Y%m%d)
docker compose pull
docker compose up -d

Security considerations#

Restrict the UI port. The default security group in this guide restricts port 3000 to your IP. Avoid opening it to 0.0.0.0/0. Most frameworks rely on a username/password that is trivial to brute-force over the public internet.

Keep API keys out of the compose file for production. Use environment variable files (.env) and keep them out of version control, or reference secrets from a vault.

Run HTTPS in production. For production deployments, place the agent UI behind a reverse proxy (nginx or Caddy) with a TLS certificate. Use a DNS record pointed at your floating IP.

Next steps#

Clean up#

Stop the compose stack and delete the instance when finished:

bash
docker compose down
Before this
Was this page helpful?