Skip to content

Deploy Airbyte with the airbyte template

Deployment

Deploy Airbyte with the airbyte template

Stand up Airbyte, an open-source extract-and-load platform, on a single Quake AI instance using the validated OpenTofu template airbyte. You apply the template, reach the web UI over the floating IP, configure a source and a destination, and run a replication job.

Airbyte is the extract-and-load layer in a self-operated data stack. You run it yourself; this is a self-hosted tool you operate, not a hosted ELT cloud.

YouFloating IPUbuntu instancePostgreSQL warehouseAirbyte stackweb UI + workerdocker composemetadata DB + Temporal orchestratesHTTPS or SSH tunnelreplication sync
Click to zoom
What you'll build: an Airbyte host on a single instance, replicating from a sample source into a PostgreSQL warehouse

Monthly cost estimate

Pricing calculator ↗

Sized as a custom package on dedicated vCPU.

Starting template$68.20/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

Airbyte host

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

Runs the Airbyte OSS stack in Docker (web app, worker, metadata PostgreSQL, Temporal) for extract-and-load pipelines.

2 vCPU and 8 GiB RAM default; size up for heavy sync jobs, many connectors, or concurrent replication tasks.

$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.

—

Block storage (90 GiB)

90 GiB at $0.08/GiB/mo

$7.20

Public IP (included)

1 included with the custom package

$0.00

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.

$18.70/mo

Production on dedicated CPU

The headline estimate above; predictable steady-load performance.

$68.20/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#

You need:

  • OpenTofu 1.6.0 or later (or Terraform 1.6.0 or later) installed locally.
  • Your OpenStack credentials sourced into the shell (source openrc.sh). See the OpenStack CLI guide.
  • An SSH keypair that already exists in your project. Record its name for the key_name variable.
  • A copy of the airbyte template directory from the template reference page.
  • Your workstation's public IP address, so you can open the web UI port for first-boot setup. Find it with curl -sS https://api.ipify.org.

A destination is optional for first boot. You add a PostgreSQL warehouse or Object Storage bucket in step 3.

Step 1: Set the variables and apply the template#

The web UI listens on port 8000 over plain HTTP. The template's security group restricts port 8000 to ui_allowed_cidr, which defaults to the private network only, so the raw UI stays off the public internet. To reach the UI from your workstation for first-boot setup, set ui_allowed_cidr to your own address.

Copy the template's example variables file and open it:

bash
cp terraform.tfvars.example terraform.tfvars

Set key_name to the SSH keypair already in your project, and ui_allowed_cidr to your workstation's public IP with a /32 suffix:

HCL
key_name         = "YOUR_KEY_NAME"
ui_allowed_cidr  = "YOUR_IP/32"

Initialize the working directory, preview the plan, and apply:

bash
tofu init
tofu plan
tofu apply

OpenTofu provisions a private network, a router, a security group, a block volume mounted at /var/lib/docker, an instance, and a floating IP. On first boot, cloud-init mounts the data volume, installs Docker Engine, and starts the Airbyte stack from docker compose on port 8000.

When the apply finishes, read the outputs:

bash
tofu output

Record floating_ip and ui_url.

Step 2: Open the web UI#

Airbyte does not ship default login credentials in this template. cloud-init downloads the pinned platform release and starts the stack in detached mode; the first boot takes several minutes while containers pull images and run migrations.

Open ui_url (for example http://YOUR_FLOATING_IP:8000) in your browser. If the page does not load yet, wait and retry; you can watch containers start over SSH:

bash
ssh ubuntu@YOUR_FLOATING_IP "sudo docker ps --filter name=airbyte"

When the Airbyte home screen appears, you are ready to add connections.

Step 3: Configure a source and destination#

You connect a sample source and a warehouse destination, then run a sync.

  1. In the Airbyte UI, select Sources > + New source. Choose Sample data (Faker) for a quick test, or pick a connector that matches your workload.
  2. Select Destinations > + New destination. For a PostgreSQL warehouse, choose Postgres and point it at a self-managed PostgreSQL instance on the same private network (host, port, database, user, password). For Object Storage, choose S3 and set the Quake AI S3-compatible endpoint and access keys from the Console.
  3. Select Connections > + New connection, link the source and destination, choose a sync frequency, and save.
  4. Select Sync now and wait for the job to complete. Confirm rows landed in the destination (query the Postgres table or list objects in the bucket).

What you built#

  • Applied the airbyte template to provision a network, security group, data volume, instance, and floating IP, and let cloud-init install Docker and start the Airbyte stack
  • Opened the web UI and confirmed the multi-container stack is running
  • Configured a source, a destination, and a connection, then ran a replication sync into PostgreSQL or Object Storage
  • Confirmed data landed in the destination you chose

Scope of this deployment#

This template runs a single-VM Airbyte host, not a hosted ELT cloud. The instance is CPU-only and runs in one region. You operate the instance, Docker, Airbyte, and the data volume yourself: back them up, patch them, and watch resource use as sync volume grows. Snapshot the volume before you resize or rebuild the host. For heavy replication workloads, size the instance up and point destinations at a dedicated warehouse.

Next steps#

Clean up#

When you no longer need the deployment, destroy everything the template created:

bash
tofu destroy

Because Airbyte metadata, connector workspaces, and sync logs all live on the instance and its attached volume, tofu destroy removes them along with the infrastructure. Export any connection configurations you want to keep before you destroy.

Before this
Was this page helpful?