# Quake AI Documentation > Cloud infrastructure documentation for Quake AI: compute, storage, networking, Kubernetes, automation, and platform reference. > Source: https://docs.quake.ai > Per-page clean markdown is available by appending .md to any /docs/ URL (e.g. /docs/compute/instances.md). Use these for surgical LLM context fetches. > OKF bundle: browse /okf/ for a directory of YAML-frontmatter markdown concepts (Open Knowledge Format v0.1). Download /okf-bundle.tar.gz for offline ingestion. ## Start here - [Quickstart](https://docs.quake.ai/docs/quickstart): Pick a starting path on Quake AI: deploy an app, provision with an AI assistant, or launch your first server. Each path ends in a working result you can keep. [markdown](https://docs.quake.ai/docs/quickstart.md) - [Quake AI platform](https://docs.quake.ai/docs/platform): Quake AI is a US-based public cloud built on OpenStack, offering compute, networking, storage, and Kubernetes through standard OpenStack APIs. [markdown](https://docs.quake.ai/docs/platform.md) - [Compute](https://docs.quake.ai/docs/compute): Create and manage virtual machine instances on Quake AI: choose an image and flavor, connect to project networks, and snapshot, resize, or destroy. [markdown](https://docs.quake.ai/docs/compute.md) - [Network](https://docs.quake.ai/docs/network): Connect Quake AI workloads with isolated project networks, subnets, routers, floating IPs, and security group firewall rules. [markdown](https://docs.quake.ai/docs/network.md) - [Object Storage](https://docs.quake.ai/docs/object): Store and retrieve unstructured data on Quake AI's S3-compatible object storage using standard S3 SDKs and tools, backed by OpenStack Swift. [markdown](https://docs.quake.ai/docs/object.md) - [Automation](https://docs.quake.ai/docs/automation): Define Quake AI infrastructure as code with OpenTofu or Terraform for provisioning, and Ansible for configuration management and deployment. [markdown](https://docs.quake.ai/docs/automation.md) - [Kubernetes](https://docs.quake.ai/docs/kubernetes): Provision Kubernetes clusters on Quake AI from reusable templates: the platform creates master nodes, worker nodes, and networking with Magnum. [markdown](https://docs.quake.ai/docs/kubernetes.md) - [Security](https://docs.quake.ai/docs/security): Understand the Quake AI shared responsibility model: the platform secures the infrastructure while you protect your workloads, data, and access. [markdown](https://docs.quake.ai/docs/security.md) ## Quickstart - [Add persistent storage to your server](https://docs.quake.ai/docs/quickstart/create-block-volume) (tutorial): In this tutorial, you create a block storage volume, attach it to a running virtual machine, format and mount it, and configure the server to remount it automatically after a reboot. By the end, you... [markdown](https://docs.quake.ai/docs/quickstart/create-block-volume.md) - [Automate your infrastructure with OpenTofu](https://docs.quake.ai/docs/quickstart/automate-infrastructure-opentofu) (tutorial): In this tutorial, you recreate the infrastructure from the Launch your first server tutorial, but entirely through code using OpenTofu. By the end, you will have a working OpenTofu project that... [markdown](https://docs.quake.ai/docs/quickstart/automate-infrastructure-opentofu.md) - [Deploy a containerized web application](https://docs.quake.ai/docs/quickstart/deploy-containerized-app) (tutorial): In this tutorial, we deploy a containerized web application to Quake AI. By the end, you will have a running Docker container serving a web page on a cloud instance, accessible from the internet... [markdown](https://docs.quake.ai/docs/quickstart/deploy-containerized-app.md) - [Deploy a database sandbox](https://docs.quake.ai/docs/quickstart/deploy-db-sandbox) (tutorial): Set up a database on a Quake AI VM for prototyping and local development. Choose between SQLite (zero overhead, file-based) and PostgreSQL (tuned for low-RAM tiers). [markdown](https://docs.quake.ai/docs/quickstart/deploy-db-sandbox.md) - [Deploy an API service](https://docs.quake.ai/docs/quickstart/deploy-api-service) (tutorial): Run a lightweight API server on a Quake AI VM: either Node.js (Express) or Python (Flask). The API runs as a systemd service so it starts automatically on boot and restarts on failure. [markdown](https://docs.quake.ai/docs/quickstart/deploy-api-service.md) - [Host a static website on Quake AI](https://docs.quake.ai/docs/quickstart/host-static-website) (tutorial): In this tutorial, we deploy a static website served by Nginx on a Quake AI instance. By the end, you will have a publicly accessible web page served from your own cloud server, with a public IP you... [markdown](https://docs.quake.ai/docs/quickstart/host-static-website.md) - [Launch your first server](https://docs.quake.ai/docs/quickstart/launch-your-first-server) (tutorial): The fundamentals path: launch a Developer-plan instance on Quake AI, open the right ports, and serve a public web page over SSH in about 30 minutes. [markdown](https://docs.quake.ai/docs/quickstart/launch-your-first-server.md) - [Quickstart](https://docs.quake.ai/docs/quickstart) (quickstart): Pick a starting path on Quake AI: deploy an app, provision with an AI assistant, or launch your first server. Each path ends in a working result you can keep. [markdown](https://docs.quake.ai/docs/quickstart.md) - [Set up automated backups to Quake AI](https://docs.quake.ai/docs/quickstart/automated-backups) (tutorial): In this walkthrough, you build a complete backup pipeline that copies your project files to Quake AI object storage on a schedule. By the end, you will have rclone configured as a Quake AI remote, an... [markdown](https://docs.quake.ai/docs/quickstart/automated-backups.md) - [Store and retrieve files with S3-compatible object storage](https://docs.quake.ai/docs/quickstart/object-storage-upload) (tutorial): In this tutorial, we create S3 credentials, configure the AWS CLI to point at Quake AI's object storage endpoint, create a storage container, upload and download files, and apply a basic access... [markdown](https://docs.quake.ai/docs/quickstart/object-storage-upload.md) ## Compute - [AMIs and machine images](https://docs.quake.ai/docs/compute/concepts/amis) (explanation): An AWS AMI (Amazon Machine Image) is a boot template for EC2. On Quake AI the same role is an image in the Images service (OpenStack Glance): a disk template with metadata (minimum disk, OS family)... [markdown](https://docs.quake.ai/docs/compute/concepts/amis.md) - [Apps](https://docs.quake.ai/docs/compute/concepts/apps) (explanation): Apps is a deployment feature in the Compute section of the Console (Compute > Apps). You pick an app from the catalog, and the platform provisions an instance from a pre-built image with the... [markdown](https://docs.quake.ai/docs/compute/concepts/apps.md) - [Apps console](https://docs.quake.ai/reference/compute/console/apps) (reference): Select Compute > Apps (/compute/apps) to view the Apps console. The Apps page lists pre-configured application templates you can deploy as fully provisioned instances. - [cloud-init and first-boot configuration](https://docs.quake.ai/docs/compute/concepts/cloud-init) (explanation): cloud-init is the industry-standard first-boot agent that runs inside Linux and BSD guests. When you launch an instance, Compute (OpenStack Nova) passes user data to the guest. cloud-init reads that... [markdown](https://docs.quake.ai/docs/compute/concepts/cloud-init.md) - [Compute](https://docs.quake.ai/docs/compute) (overview): Create and manage virtual machine instances on Quake AI: choose an image and flavor, connect to project networks, and snapshot, resize, or destroy. [markdown](https://docs.quake.ai/docs/compute.md) - [Compute API error reference](https://docs.quake.ai/reference/compute/api-errors) (reference): HTTP status codes, instance fault messages, and resolution steps for Compute API (Nova) errors on Quake AI. - [Compute apps](https://docs.quake.ai/docs/compute/apps) (overview): Tutorials for deploying open-source applications on a Quake AI VM through the Console Apps installer. Each guide provisions an instance and walks the application's first-run setup over SSH. For the... [markdown](https://docs.quake.ai/docs/compute/apps.md) - [Compute concepts](https://docs.quake.ai/docs/compute/concepts) (overview): Background and rationale for the Compute service primitives. Read these to understand what each piece is, how the platform composes them into a running instance, and how to think about availability... [markdown](https://docs.quake.ai/docs/compute/concepts.md) - [Compute Console](https://docs.quake.ai/reference/compute/console) (reference): The Compute section of the Quake AI console (web interface) lets you create, monitor, and manage virtual machines and their supporting resources. Select Services > Compute to access the Compute... - [Compute FAQ](https://docs.quake.ai/docs/compute/faq) (faq): Frequently asked questions about Quake AI Compute: instances, flavors, images, key pairs, snapshots, networking, and migration. [markdown](https://docs.quake.ai/docs/compute/faq.md) - [Compute how-to guides](https://docs.quake.ai/docs/compute/how-to) (overview): Procedural guides for the Compute service: launching instances on public or private networks, managing images and snapshots, accessing the VM console, and running Windows Server. For background on the... [markdown](https://docs.quake.ai/docs/compute/how-to.md) - [Compute migration guides](https://docs.quake.ai/docs/compute/migration) (migration): You move virtual machines and compute workloads to Quake AI from another provider. Major cloud providers do not offer one-click VM migration to OpenStack, so you use rebuild and rsync: you provision a... [markdown](https://docs.quake.ai/docs/compute/migration.md) - [Compute Service API Reference](https://docs.quake.ai/reference/compute/api) (reference): The Compute API reference documents every Nova endpoint with interactive request and response examples. - [Compute Service CLI Reference](https://docs.quake.ai/reference/compute/cli) (reference): This page indexes the OpenStack CLI surface for Quake AI Compute. For curated commands with Quake AI-specific context, use the Compute CLI reference. For the full command set on a single resource, use... - [Deploy OpenClaw on Quake AI](https://docs.quake.ai/docs/compute/apps/openclaw) (tutorial): This guide walks you through deploying OpenClaw, the open-source AI agent framework with 337,000+ GitHub stars, on Quake AI using the Console Apps installer. You deploy OpenClaw by connecting to a new... [markdown](https://docs.quake.ai/docs/compute/apps/openclaw.md) - [Droplets on Quake AI](https://docs.quake.ai/docs/compute/concepts/droplets) (explanation): A DigitalOcean Droplet is a Linux or Windows VM with a fixed plan size and a proprietary control API. On Quake AI the same role is an instance created through Nova: you pick a flavor, an image... [markdown](https://docs.quake.ai/docs/compute/concepts/droplets.md) - [EC2 on Quake AI](https://docs.quake.ai/docs/compute/concepts/ec2) (explanation): Amazon EC2 is AWS compute. On Quake AI the equivalent workload runs as Nova instances in a project, sized with flavors, booted from images, and reached over networks and security groups. [markdown](https://docs.quake.ai/docs/compute/concepts/ec2.md) - [Flavors](https://docs.quake.ai/docs/compute/concepts/flavors) (explanation): Flavors define the resource shape of an instance: vCPU count, memory, root disk size, and optional ephemeral or swap storage. The Compute service (OpenStack Nova) exposes flavors as named resource... [markdown](https://docs.quake.ai/docs/compute/concepts/flavors.md) - [Flavors API Reference](https://docs.quake.ai/reference/compute/flavors-api) (reference): See https://docs.openstack.org/api-ref/compute/. - [Flavors CLI Reference](https://docs.quake.ai/reference/compute/flavors-cli) (reference): See the OpenStack CLI flavor reference for the full list of openstack flavor subcommands. - [Flavors Console](https://docs.quake.ai/reference/compute/console/flavors) (reference): Flavors define the vCPU, memory, and disk resources allocated to an instance. Quake AI organizes flavors into four categories: General Purpose, Compute Optimized, Memory Optimized, and Shared... - [High Availability on Quake AI](https://docs.quake.ai/docs/compute/concepts/high-availability) (explanation): A single instance running your application is a single point of failure. When that instance goes down (planned maintenance, hardware fault, or software crash), your users see an outage. High... [markdown](https://docs.quake.ai/docs/compute/concepts/high-availability.md) - [How to back up and restore a Quake AI VM](https://docs.quake.ai/docs/compute/how-to/backup-and-restore) (how-to): Protect a VM with snapshots, copy backups off-project for disaster recovery, and run a restore drill that proves you can boot from the backup. Instance snapshots live in the same project as the source... [markdown](https://docs.quake.ai/docs/compute/how-to/backup-and-restore.md) - [How to boot a virtual machine from an ISO image](https://docs.quake.ai/docs/compute/how-to/boot-from-iso) (how-to): Install a custom operating system on Quake AI by booting from an ISO image. This process uses two volumes: a blank root drive and an ISO-backed drive. After the installation completes, you can... [markdown](https://docs.quake.ai/docs/compute/how-to/boot-from-iso.md) - [How to build a golden VM image with Packer](https://docs.quake.ai/docs/compute/how-to/build-golden-image-packer) (how-to): Build a reusable golden VM image with Packer and its OpenStack builder, then publish the result to the Quake AI Images service (OpenStack Glance) so you can launch identical instances from it. [markdown](https://docs.quake.ai/docs/compute/how-to/build-golden-image-packer.md) - [How to configure a VM with cloud-init](https://docs.quake.ai/docs/compute/how-to/configure-vm-cloud-init) (how-to): Write cloud-init user data, pass it when you launch an instance, and confirm the guest applied your baseline on first boot. [markdown](https://docs.quake.ai/docs/compute/how-to/configure-vm-cloud-init.md) - [How to create a virtual machine image](https://docs.quake.ai/docs/compute/how-to/create-image) (how-to): Upload a custom OS image to your Quake AI project so you can use it to launch instances. Quake AI supports QCOW2, RAW, and ISO disk formats. Use QCOW2 for most use cases. [markdown](https://docs.quake.ai/docs/compute/how-to/create-image.md) - [How to Create a Virtual Machine Instance](https://docs.quake.ai/docs/compute/how-to/create-instance) (how-to): Create a virtual machine (VM) instance with your choice of operating system, hardware flavor, and network configuration. This guide covers the common path: booting from a public image onto an existing... [markdown](https://docs.quake.ai/docs/compute/how-to/create-instance.md) - [How to Create a VM on a Private Network](https://docs.quake.ai/docs/compute/how-to/create-vm-private-network) (how-to): Create a virtual machine on an isolated private network with internet access via a router and floating IP. This is the recommended approach for production workloads. [markdown](https://docs.quake.ai/docs/compute/how-to/create-vm-private-network.md) - [How to Create a VM on a Public Network](https://docs.quake.ai/docs/compute/how-to/create-vm-public-network) (how-to): Create a virtual machine directly on the PublicEphemeral network for quick testing. The instance gets a public IP address automatically, so you can SSH in immediately. [markdown](https://docs.quake.ai/docs/compute/how-to/create-vm-public-network.md) - [How to create an instance snapshot](https://docs.quake.ai/docs/compute/how-to/create-snapshot) (how-to): Create a point-in-time snapshot of a running instance. Snapshots are stored as images and can be used to launch new instances or create golden images for repeatable deployments. [markdown](https://docs.quake.ai/docs/compute/how-to/create-snapshot.md) - [How to Deploy a Containerized Application with Docker Compose on a Quake AI VM](https://docs.quake.ai/docs/compute/how-to/deploy-docker-compose) (how-to): Run a multi-container application from a docker-compose.yml file on a Quake AI virtual machine. You install Docker and the Compose plugin on the VM, move your project onto it, supply environment... [markdown](https://docs.quake.ai/docs/compute/how-to/deploy-docker-compose.md) - [How to harden a Quake AI virtual machine](https://docs.quake.ai/docs/compute/how-to/harden-production-vm) (how-to): Harden a freshly provisioned Linux virtual machine before it serves traffic. Restrict network access with security groups, reduce SSH exposure in the guest OS, add a host firewall, enable automatic... [markdown](https://docs.quake.ai/docs/compute/how-to/harden-production-vm.md) - [How to launch a Windows Server VM](https://docs.quake.ai/docs/compute/how-to/windows-server) (how-to): Important: You are responsible for meeting all licensing requirements. [markdown](https://docs.quake.ai/docs/compute/how-to/windows-server.md) - [How to maintain a Quake AI VM over its lifetime](https://docs.quake.ai/docs/compute/how-to/maintain-vm) (how-to): Keep a production VM healthy over months of use: change its flavor when load grows, expand attached storage, reboot safely, rotate logs, and decommission the instance without leaving orphaned... [markdown](https://docs.quake.ai/docs/compute/how-to/maintain-vm.md) - [How to operate a running Quake AI VM](https://docs.quake.ai/docs/compute/how-to/operate-running-vm) (how-to): Use these procedures to connect over SSH, rotate access, attach storage, check resource usage, transfer files, and recover access to a running VM. [markdown](https://docs.quake.ai/docs/compute/how-to/operate-running-vm.md) - [How to patch and update a Quake AI VM](https://docs.quake.ai/docs/compute/how-to/patch-and-update-vm) (how-to): Patch the guest operating system manually or on a schedule. Plan reboots for kernel updates, and create a Quake AI snapshot as a rollback point before a major upgrade. [markdown](https://docs.quake.ai/docs/compute/how-to/patch-and-update-vm.md) - [How to provision a production-ready VM](https://docs.quake.ai/docs/compute/how-to/provision-production-vm) (how-to): Walk through the decisions and steps to launch a virtual machine you can run a workload on: pick sizing, attach SSH access, place the instance on the right network, pass first-boot configuration, and... [markdown](https://docs.quake.ai/docs/compute/how-to/provision-production-vm.md) - [How to resize a Quake AI VM to a dedicated-CPU plan](https://docs.quake.ai/docs/compute/how-to/resize-to-dedicated-plan) (how-to): Move a VM from a shared vCPU flavor (the Developer plan's starting point) to a dedicated vCPU flavor (Basic and custom dedicated packs). A flavor resize keeps the instance ID, boot volume, attached... [markdown](https://docs.quake.ai/docs/compute/how-to/resize-to-dedicated-plan.md) - [How to schedule recurring jobs on a Quake AI VM](https://docs.quake.ai/docs/compute/how-to/schedule-cron-jobs) (how-to): Run a command or script on a fixed schedule inside a Quake AI instance, using either cron or systemd timers. [markdown](https://docs.quake.ai/docs/compute/how-to/schedule-cron-jobs.md) - [How to set a password on a virtual machine instance](https://docs.quake.ai/docs/compute/how-to/create-password) (how-to): Set a login password on an instance so you can access it via the web console. Passwords are an alternative to SSH key pairs for console-based access. [markdown](https://docs.quake.ai/docs/compute/how-to/create-password.md) - [How to use the virtual machine console](https://docs.quake.ai/docs/compute/how-to/use-vm-console) (how-to): Access a running virtual machine through a browser-based VNC terminal. The console lets you interact with the instance without SSH, which is useful during OS installation, when network access is... [markdown](https://docs.quake.ai/docs/compute/how-to/use-vm-console.md) - [Images](https://docs.quake.ai/docs/compute/concepts/images) (explanation): Images give each new instance the same starting point: operating system, tooling, and baseline configuration. The Images service (OpenStack Glance) lets you discover, register, and retrieve virtual... [markdown](https://docs.quake.ai/docs/compute/concepts/images.md) - [Images Console](https://docs.quake.ai/reference/compute/console/images) (reference): Images are pre-configured files that contain a virtual machine's (VM) operating system and associated data. Images serve as templates for creating instances (VMs) within the Compute service. The Image... - [Images Service API Reference](https://docs.quake.ai/reference/compute/images-api) (reference): These endpoints operate on images: listing, creating, updating, deleting, uploading and downloading image data, and sharing images with other projects. They are the OpenStack Glance v2 API. For the... - [Images Service CLI Reference](https://docs.quake.ai/reference/compute/images-cli) (reference): See the OpenStack CLI image reference for the full list of openstack image subcommands. - [Instance Snapshots](https://docs.quake.ai/docs/compute/concepts/snapshots) (explanation): Instance snapshots capture the full state of a running instance (root disk data, memory, and configuration) as an image you can store, clone from, or restore to. They are part of the Compute service... [markdown](https://docs.quake.ai/docs/compute/concepts/snapshots.md) - [Instance Snapshots API Reference](https://docs.quake.ai/reference/compute/snapshots-api) (reference): See the upstream Compute (Nova) API reference and Image (Glance) API reference. - [Instance Snapshots CLI Reference](https://docs.quake.ai/reference/compute/snapshots-cli) (reference): See the OpenStack CLI reference for the full command set. - [Instance Snapshots Console](https://docs.quake.ai/reference/compute/console/snapshots) (reference): Instance snapshots can be used for backup purposes, to create new instances with identical configurations, or to roll back to a previous state in case of errors or issues. - [Instances](https://docs.quake.ai/docs/compute/concepts/instances) (explanation): Instances are virtual machines (VMs) that run on Quake AI. They give you isolated compute (CPU, memory, disk, and network), so you deploy applications and services inside projects without sharing an... [markdown](https://docs.quake.ai/docs/compute/concepts/instances.md) - [Instances API Reference](https://docs.quake.ai/reference/compute/instances-api) (reference): Compute (Nova v2.1) instance endpoints on Quake AI: create boot-from-volume servers, run lifecycle actions, attach volumes, snapshot, and read response codes and error envelopes. - [Instances CLI Reference](https://docs.quake.ai/reference/compute/instances-cli) (reference): See https://docs.openstack.org/nova/2023.1/cli/index.html. - [Instances Console](https://docs.quake.ai/reference/compute/console/instances) (reference): Instances are the building blocks for running applications and services in the cloud. They provide a flexible and scalable way to deploy workloads, with the ability to manage and scale resources as... - [Key Pair API Reference](https://docs.quake.ai/reference/compute/key-pairs-api) (reference): See the upstream Nova API reference for the full specification. - [Key Pair CLI Reference](https://docs.quake.ai/reference/compute/key-pairs-cli) (reference): See the OpenStackClient keypair command reference for subcommands, arguments, and examples. - [Key pairs](https://docs.quake.ai/docs/compute/concepts/key-pairs) (explanation): Key pairs are the default way you prove you are allowed to log in to Linux instances without sending a password over the network. Quake AI stores the public half and injects it into the guest; you... [markdown](https://docs.quake.ai/docs/compute/concepts/key-pairs.md) - [Key Pairs Console](https://docs.quake.ai/reference/compute/console/key-pairs) (reference): The Key Pair service enhances the security of virtual machine instances by providing a mechanism for secure, passwordless authentication using SSH keys. It is an essential feature for users who need... - [Migrate a Docker container app from AWS to Quake AI](https://docs.quake.ai/docs/compute/migration/migrate-docker-app-from-aws) (migration): You use this guide to move a containerized application from AWS (ECS, Fargate, or EC2 with Docker) to Quake AI (OpenStack Nova). The migration shifts you from managed orchestration to self-managed... [markdown](https://docs.quake.ai/docs/compute/migration/migrate-docker-app-from-aws.md) - [Migrate from AWS EC2 to Quake AI compute](https://docs.quake.ai/docs/compute/migration/migrate-from-ec2) (migration): You use this guide to move virtual machine workloads from AWS EC2 to Quake AI (OpenStack Nova). For most workloads, you rebuild and rsync: you provision a fresh Nova instance, install your application... [markdown](https://docs.quake.ai/docs/compute/migration/migrate-from-ec2.md) - [Migrate from Azure Virtual Machines to Quake AI Compute](https://docs.quake.ai/docs/compute/migration/migrate-from-azure-vms) (migration): This guide covers migrating compute workloads from Azure VMs to Quake AI (OpenStack Nova). Azure supports VHD disk export via SAS URL, which can be converted to QCOW2 and uploaded to Glance. For most... [markdown](https://docs.quake.ai/docs/compute/migration/migrate-from-azure-vms.md) - [Migrate from DigitalOcean Droplets to Quake AI Compute](https://docs.quake.ai/docs/compute/migration/migrate-from-droplets) (migration): This guide covers migrating compute workloads from DigitalOcean Droplets to Quake AI (OpenStack Nova). DigitalOcean does not support image export, so the recommended approach is rebuild and rsync... [markdown](https://docs.quake.ai/docs/compute/migration/migrate-from-droplets.md) - [Migrate from GCP Compute Engine to Quake AI compute](https://docs.quake.ai/docs/compute/migration/migrate-from-gce) (migration): You use this guide to move compute workloads from GCP Compute Engine to Quake AI (OpenStack Nova). GCP can export custom images to QCOW2, OpenStack Glance's preferred format, with Cloud Build handling... [markdown](https://docs.quake.ai/docs/compute/migration/migrate-from-gce.md) - [Migrate from Hetzner Cloud Servers to Quake AI Compute](https://docs.quake.ai/docs/compute/migration/migrate-from-hetzner-servers) (migration): This guide covers migrating compute workloads from Hetzner Cloud to Quake AI (OpenStack Nova). Hetzner does not support image export, so the recommended approach is rebuild and rsync. Hetzner users... [markdown](https://docs.quake.ai/docs/compute/migration/migrate-from-hetzner-servers.md) - [Migrate from Linode compute instances to Quake AI compute](https://docs.quake.ai/docs/compute/migration/migrate-from-linode) (migration): This guide covers migrating compute workloads from Linode (now branded Akamai Cloud Computing) to Quake AI (OpenStack Nova). Linode's image and snapshot tools are designed for intra-Linode portability... [markdown](https://docs.quake.ai/docs/compute/migration/migrate-from-linode.md) - [Migrate from Vultr to Quake AI compute](https://docs.quake.ai/docs/compute/migration/migrate-from-vultr) (migration): This guide covers migrating compute workloads from Vultr to Quake AI (OpenStack Nova). Vultr's snapshot tools are designed for intra-Vultr portability and do not export to a format Glance can import... [markdown](https://docs.quake.ai/docs/compute/migration/migrate-from-vultr.md) - [Model Resource Requirements](https://docs.quake.ai/reference/compute/model-resource-requirements) (reference): Reference for selecting a Quake AI instance flavor based on the language model you intend to run. All figures assume Ollama with 4-bit quantization (the default), CPU-only inference, and no other... - [Self-Hosted AI on Cloud Infrastructure](https://docs.quake.ai/docs/compute/concepts/self-hosted-ai) (explanation): Self-hosted AI means running language models on infrastructure you control. Your prompts and completions stay on your network. You pay a fixed compute cost (not per token), and you can run open-weight... [markdown](https://docs.quake.ai/docs/compute/concepts/self-hosted-ai.md) - [Server Groups](https://docs.quake.ai/docs/compute/concepts/server-groups) (explanation): Server groups apply placement policies (affinity or anti-affinity) that control whether your instances land on the same physical host or are spread across different hosts. The Compute service... [markdown](https://docs.quake.ai/docs/compute/concepts/server-groups.md) - [Server Groups API Reference](https://docs.quake.ai/reference/compute/server-groups-api) (reference): In these methods, \{server_group_id\} is a placeholder for the ID of the server group; replace it with the actual ID. The API lists existing server groups, shows details of a specific server group... - [Server Groups CLI Reference](https://docs.quake.ai/reference/compute/server-groups-cli) (reference): See the OpenStackClient server group command reference for subcommands, arguments, and examples. - [Server Groups Console](https://docs.quake.ai/reference/compute/console/server-groups) (reference): Server groups provide a mechanism for controlling the placement of instances and can be an essential tool for optimizing performance, availability, and fault tolerance in a cloud environment. - [Servers (compute instances)](https://docs.quake.ai/docs/compute/concepts/servers) (explanation): When documentation or the OpenStack CLI says server, it means a compute instance on Quake AI: a running virtual machine backed by Nova, not a physical rack server and not a server group placement... [markdown](https://docs.quake.ai/docs/compute/concepts/servers.md) - [Snapshots (instance vs volume)](https://docs.quake.ai/docs/compute/concepts/snapshot-types) (explanation): Snapshot means different things depending on which service creates it. On Quake AI, separate the two cases before you plan backup or migration. [markdown](https://docs.quake.ai/docs/compute/concepts/snapshot-types.md) - [SSH keys on Quake AI](https://docs.quake.ai/docs/compute/concepts/ssh-keys) (explanation): SSH keys in migration guides and provider consoles map to key pairs on Quake AI: a stored public key Nova injects at instance boot through cloud-init, paired with the private key you keep on your... [markdown](https://docs.quake.ai/docs/compute/concepts/ssh-keys.md) - [Virtual machines (VMs)](https://docs.quake.ai/docs/compute/concepts/virtual-machines) (explanation): On Quake AI, a virtual machine (VM) is an instance: an isolated guest OS running on the Compute service with its own vCPU, memory, disk, and network attachments. Console copy, billing, and most... [markdown](https://docs.quake.ai/docs/compute/concepts/virtual-machines.md) ## Network - [Cloud firewalls on Quake AI](https://docs.quake.ai/docs/network/concepts/firewalls) (explanation): Provider firewalls, security lists, and cloud firewalls filter traffic to VMs. On Quake AI port-level rules are security groups in the Network service (OpenStack Neutron). [markdown](https://docs.quake.ai/docs/network/concepts/firewalls.md) - [Elastic IPs and static public addresses](https://docs.quake.ai/docs/network/concepts/elastic-ips) (explanation): Elastic IP (AWS), reserved IP (DigitalOcean), static external IP (GCP), and public IP (Azure) names all describe a stable public address you attach to a workload. On Quake AI that role is a floating... [markdown](https://docs.quake.ai/docs/network/concepts/elastic-ips.md) - [Floating IP API Reference](https://docs.quake.ai/reference/network/floating-ip-api) (reference): On Quake AI, the floating IP API is served by Neutron at https://network.us-east-1.rumble.cloud/v2.0/floatingips. The legacy Nova os-floating-ips proxy endpoints remain available on the default... - [Floating IP CLI Reference](https://docs.quake.ai/reference/network/floating-ip-cli) (reference): See the OpenStack CLI floating IP reference for the full list of openstack floating ip subcommands. - [Floating IPs](https://docs.quake.ai/docs/network/concepts/floating-ips) (explanation): The Network service (OpenStack Neutron) implements floating IPs as public addresses you attach to an instance on a private network when you need reachability from the internet or another external... [markdown](https://docs.quake.ai/docs/network/concepts/floating-ips.md) - [Floating IPs Console](https://docs.quake.ai/reference/network/console/floating-ips) (reference): Floating IPs (FIP) are a critical feature for enabling external access to instances in your cloud projects. They provide the flexibility to expose services to the outside world while maintaining the... - [How to allocate floating IP addresses](https://docs.quake.ai/docs/network/how-to/allocate-floating-ips) (how-to): Floating IPs are public IP addresses that you can assign to instances on private networks. Allocate a floating IP from the public pool, then associate it with an instance to make it reachable from the... [markdown](https://docs.quake.ai/docs/network/how-to/allocate-floating-ips.md) - [How to Create a Network](https://docs.quake.ai/docs/network/how-to/create-network) (how-to): Create a private network with a subnet to connect your instances. Each network requires at least one subnet that defines the IP address range, DNS servers, and gateway settings. [markdown](https://docs.quake.ai/docs/network/how-to/create-network.md) - [How to Create a Router](https://docs.quake.ai/docs/network/how-to/create-router) (how-to): Create a router to connect a private network to an external network. Routers enable instances on private subnets to reach the internet and allow floating IP addresses to route traffic to your... [markdown](https://docs.quake.ai/docs/network/how-to/create-router.md) - [How to create a security group](https://docs.quake.ai/docs/network/how-to/create-security-group) (how-to): Security groups act as virtual firewalls that control inbound and outbound traffic to your instances. Create a security group to define a set of rules that specify which traffic is allowed. [markdown](https://docs.quake.ai/docs/network/how-to/create-security-group.md) - [How to Create Security Group Rules](https://docs.quake.ai/docs/network/how-to/create-security-group-rules) (how-to): Add rules to an existing security group to control which traffic can reach your instances. Rules define the protocol, port range, direction, and source for allowed traffic. [markdown](https://docs.quake.ai/docs/network/how-to/create-security-group-rules.md) - [How to front a Quake AI workload with a web application firewall](https://docs.quake.ai/docs/network/how-to/front-with-waf) (how-to): Put a web application firewall (WAF) in front of an HTTP workload so attack traffic (SQL injection, cross-site scripting, and other OWASP Top 10 patterns) is filtered before it reaches your instances... [markdown](https://docs.quake.ai/docs/network/how-to/front-with-waf.md) - [How to issue and auto-renew a TLS certificate with Let's Encrypt](https://docs.quake.ai/docs/network/how-to/lets-encrypt-certificate) (how-to): Use Certbot on a Quake AI instance to obtain and renew a TLS certificate from Let's Encrypt. Terminate TLS on the application instance or on a self-managed reverse proxy. [markdown](https://docs.quake.ai/docs/network/how-to/lets-encrypt-certificate.md) - [How to point a domain at a Quake AI resource](https://docs.quake.ai/docs/network/how-to/point-domain-to-quake-ai) (how-to): Publish a hostname that resolves to a workload on Quake AI. Allocate a public address on the platform, then create an A or CNAME record at your domain registrar or DNS host. Quake AI does not host... [markdown](https://docs.quake.ai/docs/network/how-to/point-domain-to-quake-ai.md) - [How to put a CDN in front of a Quake AI workload](https://docs.quake.ai/docs/network/how-to/front-with-cdn) (how-to): Place a third-party content delivery network (CDN) in front of a Quake AI origin to cache static assets and absorb edge traffic. This guide covers the Quake AI origin configuration and the values your... [markdown](https://docs.quake.ai/docs/network/how-to/front-with-cdn.md) - [How to run blue/green or canary deployments on Quake AI](https://docs.quake.ai/docs/network/how-to/blue-green-canary-deploys) (how-to): Cut over to a new application version by routing traffic through a reverse proxy that you operate. This guide uses HAProxy because its runtime API can change backend weights without restarting the... [markdown](https://docs.quake.ai/docs/network/how-to/blue-green-canary-deploys.md) - [How to self-host authoritative DNS on Quake AI](https://docs.quake.ai/docs/network/how-to/self-host-dns) (how-to): Run an authoritative DNS server you operate on a Quake AI instance. Quake AI does not host managed DNS for your domains. You launch a VM, install PowerDNS, publish zones, and delegate the domain from... [markdown](https://docs.quake.ai/docs/network/how-to/self-host-dns.md) - [How to set up a site-to-site or remote-access VPN to Quake AI](https://docs.quake.ai/docs/network/how-to/site-to-site-vpn) (how-to): Connect an on-premises network or remote clients to a private Quake AI network by running a VPN gateway on a Compute instance. [markdown](https://docs.quake.ai/docs/network/how-to/site-to-site-vpn.md) - [How to set up SSH bastion access into a private subnet](https://docs.quake.ai/docs/network/how-to/ssh-bastion-access) (how-to): Reach instances on a private subnet through a single hardened jump host, so the private instances never need a public address. [markdown](https://docs.quake.ai/docs/network/how-to/ssh-bastion-access.md) - [IP address management](https://docs.quake.ai/docs/network/concepts/ip-addresses) (explanation): Instances on Quake AI receive at least one private IP address from the subnet they connect to. How that address is allocated, how it reaches the guest OS, and what happens when you need multiple... [markdown](https://docs.quake.ai/docs/network/concepts/ip-addresses.md) - [Migrate from AWS VPC to Quake AI](https://docs.quake.ai/docs/network/migration/migrate-from-aws-vpc) (migration): AWS VPC exposes more networking primitives than the other major cloud providers, so it has the largest gap to bridge when migrating to Quake AI. The core shift: AWS layers subnets, an Internet... [markdown](https://docs.quake.ai/docs/network/migration/migrate-from-aws-vpc.md) - [Migrate from Azure VNet to Quake AI](https://docs.quake.ai/docs/network/migration/migrate-from-azure-vnet) (migration): Azure's networking model introduces these constructs with no direct Neutron equivalent: the dual NSG layer (subnet-level and NIC-level), User Defined Routes for traffic inspection, Application Gateway... [markdown](https://docs.quake.ai/docs/network/migration/migrate-from-azure-vnet.md) - [Migrate from DigitalOcean VPC to Quake AI](https://docs.quake.ai/docs/network/migration/migrate-from-do-vpc) (migration): DigitalOcean's networking model is among the simplest of the major cloud providers and maps most cleanly to Quake AI's OpenStack Neutron. Cloud Firewalls are stateful and allow-only (matching Neutron... [markdown](https://docs.quake.ai/docs/network/migration/migrate-from-do-vpc.md) - [Migrate from GCP VPC to Quake AI](https://docs.quake.ai/docs/network/migration/migrate-from-gcp-vpc) (migration): GCP's global VPC model is architecturally unique among cloud providers and requires the most significant conceptual restructuring for migration. A single GCP VPC spans all regions within a project... [markdown](https://docs.quake.ai/docs/network/migration/migrate-from-gcp-vpc.md) - [Migrate from Hetzner Cloud Networks to Quake AI](https://docs.quake.ai/docs/network/migration/migrate-from-hetzner-networks) (migration): Hetzner Cloud's private networking, firewall, and floating IP models map closely to Quake AI's OpenStack Neutron. The primary structural addition on Quake AI is the explicit router object: Hetzner... [markdown](https://docs.quake.ai/docs/network/migration/migrate-from-hetzner-networks.md) - [Migrate from Linode VPC and Cloud Firewall to Quake AI](https://docs.quake.ai/docs/network/migration/migrate-from-linode-vpc) (migration): Linode (now branded Akamai Cloud Computing) exposes a compact networking surface: a VPC that bundles a network and a single subnet, a free intra-region L2 VLAN for private traffic, a stateful Cloud... [markdown](https://docs.quake.ai/docs/network/migration/migrate-from-linode-vpc.md) - [Migrate from Vultr VPC 2.0 and Firewall Groups to Quake AI](https://docs.quake.ai/docs/network/migration/migrate-from-vultr-vpc) (migration): Vultr exposes a compact networking surface: VPC 2.0, account-level Firewall Groups, Reserved IPs, and Vultr Load Balancers. Quake AI's OpenStack Neutron provides explicit networks, subnets, routers... [markdown](https://docs.quake.ai/docs/network/migration/migrate-from-vultr-vpc.md) - [Network](https://docs.quake.ai/docs/network) (overview): Connect Quake AI workloads with isolated project networks, subnets, routers, floating IPs, and security group firewall rules. [markdown](https://docs.quake.ai/docs/network.md) - [Network API error reference](https://docs.quake.ai/reference/network/api-errors) (reference): HTTP status codes, port/router/security group errors, and resolution steps for Network API (Neutron) errors on Quake AI. - [Network concepts](https://docs.quake.ai/docs/network/concepts) (overview): Background and rationale for the building blocks that make up the Network service. Read these to understand what each primitive is, how it relates to the others, and why the platform models networking... [markdown](https://docs.quake.ai/docs/network/concepts.md) - [Network Console](https://docs.quake.ai/reference/network/console) (reference): The Network section of the Quake AI console (web interface) lets you create and manage virtual networks, routers, floating IPs, ports, and firewall rules. Select Services > Network to access the... - [Network FAQ](https://docs.quake.ai/docs/network/faq) (faq): Frequently asked questions about Quake AI Network: networks, subnets, routers, floating IPs, security groups, TLS, and cloud migration. [markdown](https://docs.quake.ai/docs/network/faq.md) - [Network how-to guides](https://docs.quake.ai/docs/network/how-to) (overview): Procedural guides for the Network service: provisioning networks and subnets, attaching routers, allocating floating IPs, defining security groups, configuring DNS, and protecting public endpoints... [markdown](https://docs.quake.ai/docs/network/how-to.md) - [Network Migration Guides](https://docs.quake.ai/docs/network/migration) (migration): Move your networking configuration to Quake AI from another provider. Quake AI's network layer runs OpenStack Neutron with OVN as the SDN backend, providing software-defined networking with five core... [markdown](https://docs.quake.ai/docs/network/migration.md) - [Network Service API Reference](https://docs.quake.ai/reference/network/api) (reference): The Network API reference documents every Neutron endpoint with curl examples and request bodies. - [Network Service CLI Reference](https://docs.quake.ai/reference/network/cli) (reference): The Network CLI reference lists curated commands with Quake AI-specific context. This page covers core resource commands; router static routes and security-group commands are documented on that... - [Networks](https://docs.quake.ai/docs/network/concepts/networks) (explanation): Networks are isolated Layer 2 segments that give your instances connectivity. Instances attach to at least one network; most production deployments use private networks with routers and floating IPs... [markdown](https://docs.quake.ai/docs/network/concepts/networks.md) - [Networks Console](https://docs.quake.ai/reference/network/console/networks) (reference): The Networks console lists all networks in your project. Quake AI provides two shared networks: PublicEphemeral (dynamic public IP, released on instance delete) and PublicStatic (persistent public IP... - [Ports](https://docs.quake.ai/docs/network/concepts/ports) (explanation): The Network service (OpenStack Neutron) implements ports as the logical attachment between a network and a device, most often a VM’s virtual NIC, but also router interfaces and other integrations... [markdown](https://docs.quake.ai/docs/network/concepts/ports.md) - [Ports API Reference](https://docs.quake.ai/reference/network/ports-api) (reference): See https://docs.openstack.org/api-ref/network/. - [Ports CLI Reference](https://docs.quake.ai/reference/network/ports-cli) (reference): See the OpenStack CLI port reference for the full list of openstack port subcommands. - [Ports Console](https://docs.quake.ai/reference/network/console/ports) (reference): Ports are a fundamental component of networking in the Network service, providing the necessary connectivity and configuration for instances and other network resources to communicate within the cloud... - [Routers](https://docs.quake.ai/docs/network/concepts/routers) (explanation): The Network service (OpenStack Neutron) implements routers as virtual layer-3 gateways inside your project. They connect private subnets to each other and, when you set an external gateway, to... [markdown](https://docs.quake.ai/docs/network/concepts/routers.md) - [Routers API Reference](https://docs.quake.ai/reference/network/routers-api) (reference): See https://docs.openstack.org/api-ref/network/. - [Routers CLI Reference](https://docs.quake.ai/reference/network/routers-cli) (reference): See the OpenStack CLI router reference for the full list of openstack router subcommands. - [Routers Console](https://docs.quake.ai/reference/network/console/routers) (reference): Use routers to connect different networks within a cloud environment and to provide external connectivity to instances (virtual machines). - [Security Groups](https://docs.quake.ai/docs/network/concepts/security-groups) (explanation): The Network service (OpenStack Neutron) implements security groups as stateful packet filters attached to instance ports. Each rule describes allowed traffic by direction (ingress or egress), IP... [markdown](https://docs.quake.ai/docs/network/concepts/security-groups.md) - [Security groups CLI reference](https://docs.quake.ai/reference/network/security-groups-cli) (reference): See the OpenStackClient Network v2 references for security group commands and security group rule commands. - [Security Groups Console](https://docs.quake.ai/reference/network/console/security-groups) (reference): Security groups provide a flexible mechanism for securing virtual machine instances by controlling the flow of network traffic. They are an essential component of network security in a cloud... - [Topology Console](https://docs.quake.ai/reference/network/console/topology) (reference): The topology console in the Network service provides a visual representation of the network resources and their relationships within your cloud environment. Use topology to view and understand the... - [VPC on Quake AI](https://docs.quake.ai/docs/network/concepts/vpc) (explanation): Quake AI does not expose a single object named VPC or virtual private cloud. The same job is done with networks (including subnets as IP ranges inside a network), routers (routing and NAT between... [markdown](https://docs.quake.ai/docs/network/concepts/vpc.md) ## Storage - [Storage Console](https://docs.quake.ai/reference/storage/console) (reference): The Storage sections of the Quake AI console (web interface) let you manage block storage volumes and object storage buckets. Block storage and object storage appear as separate items in the console... ## Kubernetes - [Cloud-Native Computing on Quake AI](https://docs.quake.ai/docs/kubernetes/concepts/cloud-native-computing) (explanation): Traditional application deployment is straightforward: install software on a server, configure it, run it. That model works until you need to scale to multiple instances, deploy updates without... [markdown](https://docs.quake.ai/docs/kubernetes/concepts/cloud-native-computing.md) - [Cluster templates console](https://docs.quake.ai/reference/kubernetes/console/cluster-templates) (reference): The Cluster Templates page lets you create, inspect, and delete the reusable blueprints that define Kubernetes cluster configuration. Select Services > Kubernetes > Cluster Templates... - [Clusters Console](https://docs.quake.ai/reference/kubernetes/console/clusters) (reference): The Clusters page lets you deploy, inspect, scale, and delete Kubernetes clusters. Select Services > Kubernetes > Clusters (/container-infra/clusters) to access this page. - [How to Create a Cluster Template](https://docs.quake.ai/docs/kubernetes/how-to/create-cluster-template) (how-to): Create a cluster template that defines the blueprint for Kubernetes clusters: Kubernetes version, node flavor, network driver, volume driver, and the label set that drives boot volume sizing... [markdown](https://docs.quake.ai/docs/kubernetes/how-to/create-cluster-template.md) - [How to Create a Kubernetes Cluster](https://docs.quake.ai/docs/kubernetes/how-to/create-cluster) (how-to): Deploy a Kubernetes cluster with master and worker nodes from an existing cluster template. The Kubernetes service provisions the VMs, networking, and stable control-plane endpoints, giving you a... [markdown](https://docs.quake.ai/docs/kubernetes/how-to/create-cluster.md) - [How to Deploy a Helm Chart on a Kubernetes Cluster](https://docs.quake.ai/docs/kubernetes/how-to/deploy-helm-chart) (how-to): Install the Helm CLI, point it at a Quake AI Kubernetes cluster (OpenStack Magnum), and deploy a chart with a values file. This guide covers adding a chart repository, running helm upgrade --install... [markdown](https://docs.quake.ai/docs/kubernetes/how-to/deploy-helm-chart.md) - [How to deploy to a Quake AI Kubernetes cluster from CI](https://docs.quake.ai/docs/kubernetes/how-to/deploy-from-ci) (how-to): Apply manifests or Helm releases from GitHub Actions or GitLab CI to a Magnum cluster. Fetch a fresh kubeconfig at job start with application credentials. Do not commit kubeconfig files to the... [markdown](https://docs.quake.ai/docs/kubernetes/how-to/deploy-from-ci.md) - [How to Manage a Kubernetes Cluster](https://docs.quake.ai/docs/kubernetes/how-to/manage-cluster) (how-to): Scale worker nodes, view cluster status, retrieve the kubeconfig for kubectl access, and delete clusters when no longer needed. The Clusters list page exposes a filter input on the far right of the... [markdown](https://docs.quake.ai/docs/kubernetes/how-to/manage-cluster.md) - [How to use a container registry with Quake AI](https://docs.quake.ai/docs/kubernetes/how-to/use-container-registry) (how-to): Pull private container images into Quake AI workloads from a third-party registry. Quake AI does not run a managed container registry. Push images to GitHub Container Registry (GHCR), GitLab Container... [markdown](https://docs.quake.ai/docs/kubernetes/how-to/use-container-registry.md) - [Kubernetes](https://docs.quake.ai/docs/kubernetes) (overview): Provision Kubernetes clusters on Quake AI from reusable templates: the platform creates master nodes, worker nodes, and networking with Magnum. [markdown](https://docs.quake.ai/docs/kubernetes.md) - [Kubernetes clusters](https://docs.quake.ai/docs/kubernetes/concepts/kubernetes-clusters) (explanation): A Kubernetes cluster is a control plane plus worker nodes that run your container workloads. On Quake AI you provision clusters through the Kubernetes service (OpenStack Magnum) or by running... [markdown](https://docs.quake.ai/docs/kubernetes/concepts/kubernetes-clusters.md) - [Kubernetes concepts](https://docs.quake.ai/docs/kubernetes/concepts) (overview): Background on Kubernetes on Quake AI: how the platform provisions clusters, what your team operates versus what the platform handles, and how cloud-native patterns map to Quake AI's primitives. For... [markdown](https://docs.quake.ai/docs/kubernetes/concepts.md) - [Kubernetes console](https://docs.quake.ai/reference/kubernetes/console) (reference): The Kubernetes section of the Quake AI console (web interface) lets you create and manage Kubernetes clusters and the templates that define them. Select Services > Kubernetes to access the Kubernetes... - [Kubernetes FAQ](https://docs.quake.ai/docs/kubernetes/faq) (faq): Frequently asked questions about Quake AI Kubernetes: cluster provisioning via Magnum, cluster templates, lifecycle, high availability, migration from EKS/AKS/GKE/DOKS/Hetzner, and troubleshooting. [markdown](https://docs.quake.ai/docs/kubernetes/faq.md) - [Kubernetes how-to guides](https://docs.quake.ai/docs/kubernetes/how-to) (overview): Procedural guides for the Kubernetes service: defining a cluster template, creating a cluster, and managing it day to day. For background on how Quake AI provisions Kubernetes (OpenStack Magnum), see... [markdown](https://docs.quake.ai/docs/kubernetes/how-to.md) - [Kubernetes Migration Guides](https://docs.quake.ai/docs/kubernetes/migration) (migration): Move your Kubernetes workloads to Quake AI from a managed Kubernetes provider or from a self-managed setup on another cloud. The core shift in most migrations is from a provider-operated control plane... [markdown](https://docs.quake.ai/docs/kubernetes/migration.md) - [Kubernetes on Quake AI](https://docs.quake.ai/docs/kubernetes/concepts/kubernetes) (explanation): The Quake AI Kubernetes service (OpenStack Magnum) automates cluster provisioning on top of existing Compute, Network, and Storage infrastructure. You define the cluster shape through a reusable... [markdown](https://docs.quake.ai/docs/kubernetes/concepts/kubernetes.md) - [Kubernetes Service API Reference](https://docs.quake.ai/reference/kubernetes/api) (reference): The Kubernetes API reference documents every Magnum endpoint with curl examples. - [Kubernetes Service CLI Reference](https://docs.quake.ai/reference/kubernetes/cli) (reference): The Kubernetes CLI reference lists commands with Quake AI-specific context. - [Migrate from AWS EKS to Kubernetes on Quake AI](https://docs.quake.ai/docs/kubernetes/migration/migrate-from-eks) (migration): Amazon EKS gives you a managed Kubernetes control plane with deep AWS integration: VPC-native pod networking (VPC CNI), IAM Roles for Service Accounts (IRSA), EBS/EFS-backed persistent storage... [markdown](https://docs.quake.ai/docs/kubernetes/migration/migrate-from-eks.md) - [Migrate from Azure AKS to Kubernetes on Quake AI](https://docs.quake.ai/docs/kubernetes/migration/migrate-from-aks) (migration): Azure Kubernetes Service (AKS) provides a managed Kubernetes control plane with deep Azure integration: a choice of container network interface (Azure CNI with VNET IPs, Azure CNI Overlay with a... [markdown](https://docs.quake.ai/docs/kubernetes/migration/migrate-from-aks.md) - [Migrate from DigitalOcean DOKS to Kubernetes on Quake AI](https://docs.quake.ai/docs/kubernetes/migration/migrate-from-doks) (migration): DigitalOcean Kubernetes (DOKS) provides a managed control plane with minimal vendor lock-in. DOKS uses vanilla Kubernetes with DO-specific add-ons: the dobs.csi.digitalocean.com CSI driver for block... [markdown](https://docs.quake.ai/docs/kubernetes/migration/migrate-from-doks.md) - [Migrate from GCP GKE to Kubernetes on Quake AI](https://docs.quake.ai/docs/kubernetes/migration/migrate-from-gke) (migration): Google Kubernetes Engine (GKE) provides a managed K8s control plane with deep GCP integration: Workload Identity Federation for pod-level IAM, Config Connector for provisioning GCP resources via K8s... [markdown](https://docs.quake.ai/docs/kubernetes/migration/migrate-from-gke.md) - [Migrate from Kubernetes on Hetzner Cloud to Kubernetes on Quake AI](https://docs.quake.ai/docs/kubernetes/migration/migrate-from-hetzner-k8s) (migration): Kubernetes on Hetzner Cloud is self-managed: you run the control plane and worker nodes on Hetzner Cloud Servers using the hcloud cloud controller manager (hcloud-cloud-controller-manager) and hcloud... [markdown](https://docs.quake.ai/docs/kubernetes/migration/migrate-from-hetzner-k8s.md) - [Migrate from Linode Kubernetes Engine (LKE) to Kubernetes on Quake AI](https://docs.quake.ai/docs/kubernetes/migration/migrate-from-lke) (migration): Linode Kubernetes Engine (LKE) is Akamai Cloud Computing's managed Kubernetes service. LKE ships vanilla upstream Kubernetes with a small set of Linode-specific add-ons: the... [markdown](https://docs.quake.ai/docs/kubernetes/migration/migrate-from-lke.md) - [Migrate from Vultr Kubernetes Engine (VKE) to Kubernetes on Quake AI](https://docs.quake.ai/docs/kubernetes/migration/migrate-from-vke) (migration): Vultr Kubernetes Engine (VKE) is Vultr's managed Kubernetes service. VKE ships vanilla upstream Kubernetes with a small set of Vultr-specific add-ons: a Vultr cloud controller manager (handles Service... [markdown](https://docs.quake.ai/docs/kubernetes/migration/migrate-from-vke.md) ## Automation - [Ansible on Quake AI](https://docs.quake.ai/docs/automation/concepts/ansible) (explanation): Ansible is the configuration-management layer for Quake AI infrastructure. Where OpenTofu provisions instances, networks, and volumes, Ansible installs software, deploys applications, and manages OS... [markdown](https://docs.quake.ai/docs/automation/concepts/ansible.md) - [Ansible openstack.cloud module reference](https://docs.quake.ai/reference/automation/ansible-modules) (reference): This page lists the openstack.cloud Ansible collection modules that are usable on Quake AI, grouped by service. Each entry names the module, the operation it performs, and Quake AI-specific... - [Authoring IaC templates for Quake AI](https://docs.quake.ai/docs/automation/concepts/authoring-iac-templates) (explanation): You write OpenTofu or Terraform templates against the OpenStack provider the same way you would on any Antelope-era cloud. Quake AI adds a small, fixed catalog of flavors, networks, and volume types... [markdown](https://docs.quake.ai/docs/automation/concepts/authoring-iac-templates.md) - [Automation](https://docs.quake.ai/docs/automation) (overview): Define Quake AI infrastructure as code with OpenTofu or Terraform for provisioning, and Ansible for configuration management and deployment. [markdown](https://docs.quake.ai/docs/automation.md) - [Automation / IaC FAQ](https://docs.quake.ai/docs/automation/faq) (faq): Frequently asked questions about Infrastructure as Code on Quake AI: OpenTofu, Terraform, Heat orchestration, Ansible configuration management, state management, templates, CI/CD integration, multi-environment patterns, and migration from CloudFormation, Hetzner, and Docker Compose. [markdown](https://docs.quake.ai/docs/automation/faq.md) - [Automation API error reference](https://docs.quake.ai/reference/automation/api-errors) (reference): This page documents common error responses from the Automation API (OpenStack Heat), explains what they mean operationally, and provides next-step actions. Use this reference when a stack operation... - [Automation concepts](https://docs.quake.ai/docs/automation/concepts) (overview): Background on infrastructure-as-code and configuration-management tooling on Quake AI: which tool fits which job, how OpenTofu and Terraform compare, and how Ansible layers on top of provisioning. For... [markdown](https://docs.quake.ai/docs/automation/concepts.md) - [Automation console](https://docs.quake.ai/reference/automation/console) (reference): The Automation section of the Quake AI console lets you view and manage Heat stacks (collections of cloud resources deployed from orchestration templates). Select Automation > Heat Stacks... - [Automation how-to guides](https://docs.quake.ai/docs/automation/how-to) (overview): Procedural and tutorial guides for OpenTofu, Terraform, Ansible, and Heat on Quake AI. For background on tool selection and workflow, see the concept pages. [markdown](https://docs.quake.ai/docs/automation/how-to.md) - [Automation Service API Reference](https://docs.quake.ai/reference/automation/api) (reference): The Automation API reference documents every Heat endpoint with curl examples. - [Automation Service CLI Reference](https://docs.quake.ai/reference/automation/cli) (reference): The Automation CLI reference lists curated commands with Quake AI-specific context. - [Cloud Automation and Orchestration](https://docs.quake.ai/docs/automation/concepts/cloud-automation) (explanation): Cloud automation replaces manual, click-through provisioning with code that describes your infrastructure. Instead of logging into a dashboard to create a VM, a network, and a security group one at a... [markdown](https://docs.quake.ai/docs/automation/concepts/cloud-automation.md) - [Get started with Ansible on Quake AI](https://docs.quake.ai/docs/automation/how-to/getting-started-ansible) (tutorial): This guide walks you through installing Ansible, authenticating to Quake AI, building a minimal inventory file, and running your first playbook against an existing instance. By the end, you will have... [markdown](https://docs.quake.ai/docs/automation/how-to/getting-started-ansible.md) - [Get started with Infrastructure as Code on Quake AI](https://docs.quake.ai/docs/automation/how-to/getting-started-iac) (tutorial): This guide walks you through installing OpenTofu, authenticating to Quake AI, and deploying your first resource. By the end, you will have a running compute instance created entirely from code. [markdown](https://docs.quake.ai/docs/automation/how-to/getting-started-iac.md) - [How to add a block volume to a template](https://docs.quake.ai/docs/automation/how-to/add-volume-to-template) (how-to): Attach a block volume to an instance that a template provisions, format it on first boot, and record the mount in /etc/fstab so the filesystem mounts after a reboot. This guide extends templates... [markdown](https://docs.quake.ai/docs/automation/how-to/add-volume-to-template.md) - [How to auto-scale a VM tier with Heat](https://docs.quake.ai/docs/automation/how-to/autoscale-with-heat) (how-to): Run a private worker tier that grows and shrinks by combining an OS::Heat::AutoScalingGroup with scale-up and scale-down policies. Each policy exposes a signal webhook that your monitoring or queue... [markdown](https://docs.quake.ai/docs/automation/how-to/autoscale-with-heat.md) - [How to create a Heat stack](https://docs.quake.ai/docs/automation/how-to/create-heat-stack) (how-to): Heat is a legacy orchestration path on Quake AI. For new projects, use OpenTofu instead. [markdown](https://docs.quake.ai/docs/automation/how-to/create-heat-stack.md) - [How to customize a template's image and flavor](https://docs.quake.ai/docs/automation/how-to/customize-template-image-flavor) (how-to): Change the operating system image or hardware size on an OpenTofu template you already deployed. This guide applies to any template under Automation templates that exposes image_name and flavor... [markdown](https://docs.quake.ai/docs/automation/how-to/customize-template-image-flavor.md) - [How to debug Terraform errors](https://docs.quake.ai/docs/automation/how-to/terraform-error-handling) (how-to): Terraform errors fall into distinct categories that require different debugging approaches: configuration errors caught before any API call, provider errors from the OpenStack API, and state... [markdown](https://docs.quake.ai/docs/automation/how-to/terraform-error-handling.md) - [How to deploy a multi-tier application with Terraform](https://docs.quake.ai/docs/automation/how-to/terraform-full-stack) (how-to): Deploy a public edge proxy, private application instances, and a private database instance with OpenTofu or Terraform. The edge proxy owns the floating IP and routes requests to the application tier... [markdown](https://docs.quake.ai/docs/automation/how-to/terraform-full-stack.md) - [How to deploy an application to a Quake AI VM from CI](https://docs.quake.ai/docs/automation/how-to/app-cicd-vm) (how-to): Ship application changes from GitHub Actions or GitLab CI to a Quake AI instance over SSH. Quake AI does not provide hosted CI runners. Use GitHub-hosted or GitLab.com runners by default, or run a... [markdown](https://docs.quake.ai/docs/automation/how-to/app-cicd-vm.md) - [How to deploy from a Quake.yaml manifest with Forgejo Actions](https://docs.quake.ai/docs/automation/how-to/forgejo-actions-launch-deploy) (how-to): Run a Forgejo Actions or Gitea Actions workflow that turns a push into a deployment through a quake.yaml launch handoff packet. The workflow runs on a forge and runner you operate, then deploys to... [markdown](https://docs.quake.ai/docs/automation/how-to/forgejo-actions-launch-deploy.md) - [How to deploy on git push with a webhook listener](https://docs.quake.ai/docs/automation/how-to/webhook-deploy-flow) (how-to): Run a small webhook listener on a VM you operate that redeploys your app when you push to its repository. A push fires a webhook from your forge, the listener verifies the request signature, and a... [markdown](https://docs.quake.ai/docs/automation/how-to/webhook-deploy-flow.md) - [How to deploy VMs with Terraform (simple example)](https://docs.quake.ai/docs/automation/how-to/terraform-simple) (how-to): Looking for a ready-to-use template? See the Simple VM template for a parameterized, validated version you can deploy directly. [markdown](https://docs.quake.ai/docs/automation/how-to/terraform-simple.md) - [How to emulate a branchable Postgres workflow](https://docs.quake.ai/docs/automation/how-to/branchable-postgres-workflow) (how-to): Create an isolated copy of a PostgreSQL database for a feature branch or pull request preview, then remove the copy when the work is complete. This guide covers three techniques for a self-managed... [markdown](https://docs.quake.ai/docs/automation/how-to/branchable-postgres-workflow.md) - [How to execute a launch handoff packet from CI](https://docs.quake.ai/docs/automation/how-to/execute-launch-handoff-from-ci) (how-to): Run a CI job that turns your repository's quake.yaml into a running deployment. Call the prepare_launch MCP tool to get a handoff packet, build and push the image from the resolved build recipe, apply... [markdown](https://docs.quake.ai/docs/automation/how-to/execute-launch-handoff-from-ci.md) - [How to integrate OpenTofu with CI/CD](https://docs.quake.ai/docs/automation/how-to/cicd-integration) (how-to): Running OpenTofu in a CI/CD pipeline eliminates manual applies, ensures consistent infrastructure changes, and creates an audit trail. This guide shows GitHub Actions and GitLab CI configurations for... [markdown](https://docs.quake.ai/docs/automation/how-to/cicd-integration.md) - [How to manage multiple environments with OpenTofu](https://docs.quake.ai/docs/automation/how-to/multi-environment) (how-to): Most production workloads need at least two environments: one for development and testing, one for production. This guide covers two approaches to managing multiple environments on Quake AI with... [markdown](https://docs.quake.ai/docs/automation/how-to/multi-environment.md) - [How to manage OpenTofu state with Quake AI S3](https://docs.quake.ai/docs/automation/how-to/state-management) (how-to): By default, OpenTofu stores state in a local terraform.tfstate file. This works for solo development but breaks down when multiple people or CI pipelines need to apply changes to the same... [markdown](https://docs.quake.ai/docs/automation/how-to/state-management.md) - [How to migrate from AWS CloudFormation to OpenTofu on Quake AI](https://docs.quake.ai/docs/automation/migration/from-aws-cloudformation) (migration): If your infrastructure runs on AWS and is defined in CloudFormation, moving to Quake AI means rewriting those stack definitions in OpenTofu HCL. This guide maps common CloudFormation resource types to... [markdown](https://docs.quake.ai/docs/automation/migration/from-aws-cloudformation.md) - [How to migrate from Docker Compose to OpenTofu on Quake AI](https://docs.quake.ai/docs/automation/migration/from-docker-compose) (migration): Docker Compose defines multi-container applications on a single host. Moving to Quake AI with OpenTofu means shifting from container orchestration to infrastructure provisioning: the containers still... [markdown](https://docs.quake.ai/docs/automation/migration/from-docker-compose.md) - [How to migrate from Hetzner Cloud to Quake AI with OpenTofu](https://docs.quake.ai/docs/automation/migration/from-hetzner) (migration): Hetzner Cloud and Quake AI attract similar audiences: cost-conscious engineers who self-manage infrastructure. If you already use Terraform or OpenTofu with the Hetzner Cloud provider, migrating to... [markdown](https://docs.quake.ai/docs/automation/migration/from-hetzner.md) - [How to migrate from Linode (Akamai) to Quake AI with OpenTofu](https://docs.quake.ai/docs/automation/migration/from-linode) (migration): Linode (now branded Akamai Cloud Computing) and Quake AI attract similar audiences: cost-conscious engineers who self-manage infrastructure. If you already use Terraform or OpenTofu with the linode... [markdown](https://docs.quake.ai/docs/automation/migration/from-linode.md) - [How to migrate from Vultr to Quake AI with OpenTofu](https://docs.quake.ai/docs/automation/migration/from-vultr) (migration): Vultr and Quake AI attract similar audiences: cost-conscious engineers who self-manage infrastructure. If you already use Terraform or OpenTofu with the vultr provider, migrating to Quake AI is a... [markdown](https://docs.quake.ai/docs/automation/migration/from-vultr.md) - [How to parameterize a template with a tfvars file](https://docs.quake.ai/docs/automation/how-to/parameterize-template-tfvars) (how-to): Reuse the same OpenTofu template in development, staging, and production without forking the HCL. Store environment-specific values in .tfvars files and pass them with -var-file at plan and apply... [markdown](https://docs.quake.ai/docs/automation/how-to/parameterize-template-tfvars.md) - [How to provision a Quake AI instance with Ansible](https://docs.quake.ai/docs/automation/how-to/ansible-provision-instance) (how-to): This guide creates a complete Quake AI stack (network, subnet, router, security group, keypair, instance, floating IP) using only the openstack.cloud Ansible collection. No OpenTofu, no separate... [markdown](https://docs.quake.ai/docs/automation/how-to/ansible-provision-instance.md) - [How to restore PostgreSQL from a self-managed-postgres backup](https://docs.quake.ai/docs/automation/how-to/restore-postgres-from-backup) (how-to): Copy a scheduled pg_dumpall from a running self-managed-postgres instance onto a second, disposable instance, restore it with psql, and confirm databases, roles, and row counts match. The source... [markdown](https://docs.quake.ai/docs/automation/how-to/restore-postgres-from-backup.md) - [How to run Ansible in CI/CD](https://docs.quake.ai/docs/automation/how-to/ansible-cicd) (how-to): This guide runs Ansible playbooks against Quake AI from GitHub Actions and GitLab CI. The same pipeline patterns drive scheduled patching, release deploys, and the Day 1 configuration step that... [markdown](https://docs.quake.ai/docs/automation/how-to/ansible-cicd.md) - [How to self-host a CI server on a VM](https://docs.quake.ai/docs/automation/how-to/self-host-ci-server) (how-to): Run a continuous integration server on a Quake AI VM to watch your repositories, queue pipelines, and dispatch build jobs. A CI server is the orchestrator that schedules work. It is one component... [markdown](https://docs.quake.ai/docs/automation/how-to/self-host-ci-server.md) - [How to use Ansible dynamic inventory on Quake AI](https://docs.quake.ai/docs/automation/how-to/ansible-dynamic-inventory) (how-to): This guide replaces hand-maintained inventory files with the openstack.cloud.openstack plugin, which queries Quake AI directly and groups hosts by metadata. By the end you will have an inventory that... [markdown](https://docs.quake.ai/docs/automation/how-to/ansible-dynamic-inventory.md) - [IaC on Quake AI: OpenTofu and Terraform](https://docs.quake.ai/docs/automation/concepts/iac-comparison) (explanation): OpenTofu is the default Infrastructure as Code tool for Quake AI. It is fully open source (MPL-2.0), backed by the Linux Foundation, and compatible with Terraform providers, modules, and state files... [markdown](https://docs.quake.ai/docs/automation/concepts/iac-comparison.md) - [Migration Guides](https://docs.quake.ai/docs/automation/migration) (migration): Step-by-step guides for moving your infrastructure to Quake AI from other providers and tools. Each guide maps source resources to their Quake AI equivalents and walks through a full migration... [markdown](https://docs.quake.ai/docs/automation/migration.md) - [Terraform and OpenTofu on Quake AI](https://docs.quake.ai/docs/automation/concepts/terraform) (explanation): Terraform and OpenTofu use HashiCorp Configuration Language (HCL) to define infrastructure as code. You describe the resources you want (instances, networks, volumes, security groups) in .tf files... [markdown](https://docs.quake.ai/docs/automation/concepts/terraform.md) - [Use Ansible with OpenTofu on Quake AI](https://docs.quake.ai/docs/automation/how-to/ansible-opentofu-workflow) (tutorial): This guide combines OpenTofu provisioning with Ansible configuration into a single workflow. You will use OpenTofu to create a VM with a floating IP, hand the IP to Ansible, and run a playbook that... [markdown](https://docs.quake.ai/docs/automation/how-to/ansible-opentofu-workflow.md) ## Tools - [Access & Credentials](https://docs.quake.ai/docs/tools) (overview): Access Quake AI programmatically with the REST APIs and command-line tools, and manage the credentials and tokens that authenticate your requests. [markdown](https://docs.quake.ai/docs/tools.md) - [Add an SSH key pair to your account](https://docs.quake.ai/docs/tools/add-ssh-key) (how-to): One of the first things to do in Quake AI is to set up an SSH key pair. [markdown](https://docs.quake.ai/docs/tools/add-ssh-key.md) - [API Access Console Reference](https://docs.quake.ai/docs/tools/api-access-console) (reference): The API section in the Quake AI console ({CONSOLE_REGION_URL}/papi/*) provides tools for managing programmatic access to your cloud project. It contains three pages (S3 Credentials, App Credentials... [markdown](https://docs.quake.ai/docs/tools/api-access-console.md) - [API changelog](https://docs.quake.ai/docs/tools/api-changelog) (reference): > Changes to the Quake AI API surface. For product and feature updates, see the product changelog. For documentation edits, see the docs changelog. [markdown](https://docs.quake.ai/docs/tools/api-changelog.md) - [API Endpoints](https://docs.quake.ai/docs/tools/api-endpoints) (reference): Select API > API Endpoints to display the APIs dashboard. [markdown](https://docs.quake.ai/docs/tools/api-endpoints.md) - [API rate limits](https://docs.quake.ai/docs/tools/api-rate-limits) (reference): Quake AI distinguishes between two types of limits that affect API usage: resource quotas (how many resources you can create) and API rate limits (how many requests you can send per time window)... [markdown](https://docs.quake.ai/docs/tools/api-rate-limits.md) - [API Versions and Microversions](https://docs.quake.ai/docs/tools/api-versions) (reference): Quake AI runs OpenStack 2023.1 (Antelope). The SLURP upgrade path is Antelope → Caracal (skip-level). [markdown](https://docs.quake.ai/docs/tools/api-versions.md) - [Application Credentials](https://docs.quake.ai/docs/tools/app-credentials) (reference): Select API > App Credentials ({CONSOLE_REGION_URL}/papi/application-credentials) to manage application credentials for your current project. [markdown](https://docs.quake.ai/docs/tools/app-credentials.md) - [Credentials and tools](https://docs.quake.ai/docs/tools/concepts) (explanation): How the OpenStack CLI, application credentials, API tokens, S3 credentials, and SSH keys relate: what each authentication surface is, what it reaches, how scoping works, and which tool consumes it. [markdown](https://docs.quake.ai/docs/tools/concepts.md) - [How to create application credentials](https://docs.quake.ai/docs/tools/generate-app-credentials) (how-to): Create application credentials to authenticate against the OpenStack API without using your account password. Application credentials are the recommended authentication method for CI/CD pipelines... [markdown](https://docs.quake.ai/docs/tools/generate-app-credentials.md) - [How to debug CLI errors](https://docs.quake.ai/docs/tools/cli-debugging) (how-to): The openstack CLI communicates with Quake AI APIs over HTTP. When a command fails, the error may originate from your local configuration, network connectivity, authentication, or the remote API. This... [markdown](https://docs.quake.ai/docs/tools/cli-debugging.md) - [How to get an API token](https://docs.quake.ai/docs/tools/api-tokens) (how-to): Generate a project-scoped API token from the Quake AI console to authenticate direct HTTP requests against OpenStack service endpoints. Tokens are issued by the Identity service (Keystone), scoped to... [markdown](https://docs.quake.ai/docs/tools/api-tokens.md) - [Install OpenStack Client](https://docs.quake.ai/docs/tools/install-openstack-client) (how-to): OpenStack client is a tool you can install on your local computer. Using the client, you'll be able to run commands on services in your Quake AI projects. [markdown](https://docs.quake.ai/docs/tools/install-openstack-client.md) - [OpenStack Client](https://docs.quake.ai/docs/tools/openstack-cli) (how-to): Looking for the full command reference? See the CLI Reference for curated per-service commands, S3-compatible storage tools, and Quake AI-specific context. [markdown](https://docs.quake.ai/docs/tools/openstack-cli.md) - [S3 Credentials](https://docs.quake.ai/docs/tools/s3-credentials) (reference): Select API > S3 Credentials ({CONSOLE_REGION_URL}/papi/s3-credentials) to manage your S3-compatible object storage credentials. [markdown](https://docs.quake.ai/docs/tools/s3-credentials.md) - [Service Endpoints](https://docs.quake.ai/docs/tools/service-endpoints) (reference): Quake AI exposes supported OpenStack services at dedicated hostnames following the pattern {service}.{region}.rumble.cloud. This page lists the public service endpoint base URLs and explains how to... [markdown](https://docs.quake.ai/docs/tools/service-endpoints.md) - [Set Up a Linux CLI Environment on Windows](https://docs.quake.ai/docs/tools/windows-cli-environment) (how-to): The CLI examples throughout this documentation use bash, the default shell on Linux and macOS. If your local machine runs Windows, you need a Linux-compatible shell environment before following CLI... [markdown](https://docs.quake.ai/docs/tools/windows-cli-environment.md) ## Account - [Account & Billing](https://docs.quake.ai/docs/account) (overview): Manage your Quake AI account, projects, subscriptions, and billing across the Cloud Console and the portal at portal.rumble.cloud. [markdown](https://docs.quake.ai/docs/account.md) - [Account & Billing FAQ](https://docs.quake.ai/docs/account/faq) (faq): Frequently asked questions about Quake AI Account and Billing: projects, organizations, resource tiers, subscriptions, billing cadence, invoices, payment methods, application credentials, and the portal and console. [markdown](https://docs.quake.ai/docs/account/faq.md) - [Account model](https://docs.quake.ai/docs/account/concepts) (explanation): How Rumble.com identity, organizations, projects, resource tiers, team roles, and application credentials fit together, and how the portal and console divide responsibilities. [markdown](https://docs.quake.ai/docs/account/concepts.md) - [Billing](https://docs.quake.ai/docs/account/billing) (overview): The Quake AI account portal handles billing and subscriptions: manage subscriptions, invoices, and payments there. You do not manage billing from the docs site. [markdown](https://docs.quake.ai/docs/account/billing.md) - [Console Dashboard](https://docs.quake.ai/docs/account/dashboard) (reference): The console dashboard is the landing page after you log in to the Quake AI console. It summarizes your project's resource usage, with quota progress bars for compute, storage, network, and Kubernetes. [markdown](https://docs.quake.ai/docs/account/dashboard.md) - [How billing works](https://docs.quake.ai/docs/account/billing/how-billing-works) (explanation): Quake AI uses resource-based monthly billing: you pay a fixed monthly amount for the subscription package and add-ons you choose. [markdown](https://docs.quake.ai/docs/account/billing/how-billing-works.md) - [How to sign out](https://docs.quake.ai/docs/account/sign-out) (how-to): From the cloud console, select Account > Sign Out. [markdown](https://docs.quake.ai/docs/account/sign-out.md) - [IAM and identity on Quake AI](https://docs.quake.ai/docs/account/concepts/iam) (explanation): IAM on AWS, Cloud IAM on Google Cloud, and Microsoft Entra ID on Azure centralize users, roles, and API access for an entire cloud estate. On Quake AI identity flows through Rumble.com sign-in... [markdown](https://docs.quake.ai/docs/account/concepts/iam.md) - [Manage cloud projects](https://docs.quake.ai/docs/account/projects) (how-to): New to Quake AI? The Get started sequence in the Quickstart walks creating your first project and picking a tier. This page is the reference for project management in the portal. [markdown](https://docs.quake.ai/docs/account/projects.md) - [Manage cloud subscriptions](https://docs.quake.ai/docs/account/subscriptions) (how-to): You'll manage your cloud subscription from the Quake AI portal. [markdown](https://docs.quake.ai/docs/account/subscriptions.md) - [Manage your account](https://docs.quake.ai/docs/account/guide) (how-to): Quake AI authenticates you with a Rumble.com identity. After you register, the portal at portal.rumble.cloud creates your organization, first project, and billing records. [markdown](https://docs.quake.ai/docs/account/guide.md) - [Manage your subscription](https://docs.quake.ai/docs/account/billing/manage-subscription) (how-to): Complete these tasks in the Quake AI account portal on the Billing page. [markdown](https://docs.quake.ai/docs/account/billing/manage-subscription.md) - [Portal Console](https://docs.quake.ai/docs/account/portal) (reference): The Quake AI portal at portal.rumble.cloud is the management interface for your account, organizations, projects, teams, billing, and help desk. The portal is separate from the cloud console (for... [markdown](https://docs.quake.ai/docs/account/portal.md) - [Pricing Reference](https://docs.quake.ai/docs/account/billing/pricing) (reference): Named packs in the portal wizard are Developer, OpenClaw Starter, and Basic. Included vCPU, RAM, and block storage for those packs are in Resource tiers. [markdown](https://docs.quake.ai/docs/account/billing/pricing.md) - [Resource Tiers](https://docs.quake.ai/docs/account/resource-tiers) (reference): Resource tiers are billing packs that set how much compute, memory, and block storage a project subscription includes. [markdown](https://docs.quake.ai/docs/account/resource-tiers.md) - [Service Level Agreement](https://docs.quake.ai/docs/account/sla) (reference): Where to find Quake AI's Service Level Agreement, what it covers, and how to file a credit claim. [markdown](https://docs.quake.ai/docs/account/sla.md) ## Operate - [Authentication and token diagnostics](https://docs.quake.ai/docs/operate/troubleshooting/auth-token-diagnostics) (troubleshooting): Diagnose HTTP 401/403 errors, expired tokens, credential scope mismatches, and app credential vs EC2 credential confusion. [markdown](https://docs.quake.ai/docs/operate/troubleshooting/auth-token-diagnostics.md) - [Configuration](https://docs.quake.ai/docs/operate/configuration) (overview): Configuration articles cover platform-specific settings and documented workarounds. Each article addresses a situation where the default behavior needs adjustment, or where a setup step you cannot... [markdown](https://docs.quake.ai/docs/operate/configuration.md) - [How to Interrupt a Virtual Machine (VM) Boot Process](https://docs.quake.ai/docs/operate/troubleshooting/interrupt-vm-boot) (troubleshooting): You may need to interrupt a Virtual Machine (VM) boot process for technical or administrative reasons. For example, there may be configuration errors, required testing, security concerns, or critical... [markdown](https://docs.quake.ai/docs/operate/troubleshooting/interrupt-vm-boot.md) - [How to monitor your Quake AI workload with Prometheus and Grafana](https://docs.quake.ai/docs/operate/monitoring/how-to-deploy-monitoring) (how-to): Collect metrics with Prometheus and visualize them in Grafana. Quake AI does not run a managed observability stack. Deploy the monitoring stack template with OpenTofu, install components manually on a... [markdown](https://docs.quake.ai/docs/operate/monitoring/how-to-deploy-monitoring.md) - [How to Reset the Password or SSH Key on a Linux based VM in Quake AI](https://docs.quake.ai/docs/operate/troubleshooting/reset-password-ssh) (troubleshooting): Quake AI does not have special access to reset a user's password or SSH key. However, since a VM behaves like a normal server, standard processes can be used to perform a password reset if such a... [markdown](https://docs.quake.ai/docs/operate/troubleshooting/reset-password-ssh.md) - [How to Send Transactional Email from a Quake AI Workload](https://docs.quake.ai/docs/operate/how-to/send-transactional-email) (how-to): Send password resets, receipts, and other per-user transactional email from an application running on a Quake AI instance by relaying through a third-party email provider over an authenticated... [markdown](https://docs.quake.ai/docs/operate/how-to/send-transactional-email.md) - [How to ship application logs off your VMs](https://docs.quake.ai/docs/operate/monitoring/how-to-ship-logs) (how-to): Forward application and system logs to a central store for search and alerting. Quake AI does not provide a managed log service. Run self-hosted Loki on a Quake AI VM, or forward to a SaaS log... [markdown](https://docs.quake.ai/docs/operate/monitoring/how-to-ship-logs.md) - [Instance connectivity troubleshooting](https://docs.quake.ai/docs/operate/runbooks/instance-connectivity) (runbook): Diagnose and fix SSH timeouts, refused connections, and network unreachability for Quake AI instances. [markdown](https://docs.quake.ai/docs/operate/runbooks/instance-connectivity.md) - [Instance lifecycle troubleshooting](https://docs.quake.ai/docs/operate/runbooks/instance-lifecycle) (runbook): Diagnose instances stuck in BUILD, ERROR, or VERIFY_RESIZE states and recover to a working state. [markdown](https://docs.quake.ai/docs/operate/runbooks/instance-lifecycle.md) - [Kubernetes cluster troubleshooting](https://docs.quake.ai/docs/operate/runbooks/kubernetes-troubleshooting) (runbook): Diagnose Kubernetes cluster creation failures, stuck pods, networking issues, and storage problems on Quake AI. [markdown](https://docs.quake.ai/docs/operate/runbooks/kubernetes-troubleshooting.md) - [Monitoring](https://docs.quake.ai/docs/operate/monitoring) (overview): Monitoring is the practice of collecting, analyzing, and acting on data about your infrastructure and applications. On Quake AI, monitoring is a customer responsibility: the platform provides the... [markdown](https://docs.quake.ai/docs/operate/monitoring.md) - [Object storage access troubleshooting](https://docs.quake.ai/docs/operate/runbooks/object-storage-access) (runbook): Diagnose S3 403 errors, credential confusion, and upload failures for Quake AI object storage. [markdown](https://docs.quake.ai/docs/operate/runbooks/object-storage-access.md) - [Operate](https://docs.quake.ai/docs/operate) (overview): Monitor, troubleshoot, and maintain workloads running on Quake AI, with operational runbooks for keeping your infrastructure healthy in production. [markdown](https://docs.quake.ai/docs/operate.md) - [Quota and limits troubleshooting](https://docs.quake.ai/docs/operate/troubleshooting/quota-and-limits) (troubleshooting): Diagnose and resolve quota exhaustion errors across compute, network, and storage services on Quake AI. [markdown](https://docs.quake.ai/docs/operate/troubleshooting/quota-and-limits.md) - [Retrieve the Administrator Password for a Windows VM on Quake AI](https://docs.quake.ai/docs/operate/troubleshooting/retrieve-windows-password) (troubleshooting): When you deploy a Windows virtual machine (VM) on Quake AI, the administrator password is encrypted and can be retrieved from the web interface if you have the corresponding private key for the key... [markdown](https://docs.quake.ai/docs/operate/troubleshooting/retrieve-windows-password.md) - [Runbooks](https://docs.quake.ai/docs/operate/runbooks) (overview): A runbook is a step-by-step procedure for handling a specific operational scenario. Runbooks reduce mean time to resolution (MTTR) by giving you a tested, repeatable path from symptom to fix; no... [markdown](https://docs.quake.ai/docs/operate/runbooks.md) - [Sending Mail (SMTP) with Your Virtual Machine](https://docs.quake.ai/docs/operate/configuration/smtp) (how-to): By default, SMTP (Simple Mail Transfer Protocol) is blocked on all virtual machines in the Quake AI environment. This policy helps to prevent email abuse. [markdown](https://docs.quake.ai/docs/operate/configuration/smtp.md) - [Snapshot fails on images that enable the QEMU guest agent](https://docs.quake.ai/docs/operate/troubleshooting/ubuntu-22-snapshots) (troubleshooting): Resolve the libvirt qemu-guest-agent snapshot error on custom images that set hw_qemu_guest_agent='yes'. The default Ubuntu-22.04 shared image snapshots without this step. [markdown](https://docs.quake.ai/docs/operate/troubleshooting/ubuntu-22-snapshots.md) - [Support ticket evidence collection](https://docs.quake.ai/docs/operate/troubleshooting/support-ticket-evidence) (troubleshooting): What to collect before filing a support ticket: commands, logs, and identifiers for faster resolution. [markdown](https://docs.quake.ai/docs/operate/troubleshooting/support-ticket-evidence.md) - [Troubleshooting](https://docs.quake.ai/docs/operate/troubleshooting) (overview): Troubleshooting guides help you diagnose and resolve common problems with your Quake AI workloads. Each guide follows a symptom-first structure: start with what you observe, narrow down the cause, and... [markdown](https://docs.quake.ai/docs/operate/troubleshooting.md) - [Understanding limitations and advanced features of Quake AI Kubernetes clusters](https://docs.quake.ai/docs/operate/troubleshooting/advanced-kubernetes) (troubleshooting): Floating IPs and Kubernetes LoadBalancer services both translate addresses. When you assign a floating IP to a cluster node and also expose a LoadBalancer service, the two NAT paths can conflict. You... [markdown](https://docs.quake.ai/docs/operate/troubleshooting/advanced-kubernetes.md) - [Volume and storage troubleshooting](https://docs.quake.ai/docs/operate/runbooks/volume-troubleshooting) (runbook): Diagnose volumes stuck in attaching, detaching, or error states and resolve delete conflicts. [markdown](https://docs.quake.ai/docs/operate/runbooks/volume-troubleshooting.md) - [Workaround for s3cmd Showing ETag as MD5 Sum](https://docs.quake.ai/docs/operate/troubleshooting/s3cmd-etag-workaround) (troubleshooting): A known issue exists with the command-line application s3cmd, where s3cmd information incorrectly shows the ETag as an MD5 sum. [markdown](https://docs.quake.ai/docs/operate/troubleshooting/s3cmd-etag-workaround.md) ## Platform - [How the platform validates its content](https://docs.quake.ai/docs/platform/validation) (explanation): How the Quake AI developer platform keeps documentation, infrastructure templates, and launch manifests accurate: live-platform checks, continuous integration gates, regenerated machine-readable surfaces, and manifest validation. [markdown](https://docs.quake.ai/docs/platform/validation.md) - [Quake AI platform](https://docs.quake.ai/docs/platform) (explanation): Quake AI is a US-based public cloud built on OpenStack, offering compute, networking, storage, and Kubernetes through standard OpenStack APIs. [markdown](https://docs.quake.ai/docs/platform.md) - [Ways to build on Quake AI](https://docs.quake.ai/docs/platform/ways-to-build) (explanation): The common ways to build on Quake AI, from the Console to infrastructure as code, containers, Kubernetes, and AI-assisted development, with the rationale for each and who it fits. [markdown](https://docs.quake.ai/docs/platform/ways-to-build.md) ## General - [AI-assisted development reference](https://docs.quake.ai/resources/ai-assisted-development/) (reference): Connect AI coding assistants to current Quake AI documentation and infrastructure templates through the hosted MCP server or plain-text documentation URLs. - [Infrastructure Templates](https://docs.quake.ai/resources/iac-templates/) (overview): OpenTofu templates for common Quake AI deployment patterns: compositions of Compute, Network, Block Storage, Object Storage, and Kubernetes primitives wired together for repeatable workloads. - [Quake AI documentation](https://docs.quake.ai/docs/) (overview): Quake AI is an independent, US-based public cloud built on OpenStack: compute, networking, storage, Kubernetes, and orchestration through standard OpenStack APIs. These docs cover the services, with... [markdown](https://docs.quake.ai/docs/.md) ## ai-assisted-development - [How to connect AI tools to Quake AI docs](https://docs.quake.ai/resources/ai-assisted-development/ai-assisted-development) (how-to): Connect AI coding assistants to current Quake AI documentation through the hosted MCP server, or four plain-text and JSON documentation URLs. ## ai-tool-rules-starter - [AI tool rules starter for Quake AI projects](https://docs.quake.ai/resources/ai-assisted-development/ai-tool-rules-starter) (reference): A project rules starter that grounds AI coding assistants in Quake AI's vocabulary so generated IaC targets the platform, with file shapes per tool. ## ai-tools-reference - [AI tools reference](https://docs.quake.ai/resources/ai-assisted-development/ai-tools-reference) (reference): Reference for the Quake AI MCP tool surface: callable tools, response envelope, export paths, JSON-RPC, and knowledge-graph.json schema. ## airbyte - [Airbyte ingestion (ELT)](https://docs.quake.ai/resources/iac-templates/airbyte) (template): This validated OpenTofu template composes Compute, Network, and Block Storage into a self-hosted extract-and-load host you run on infrastructure you control. ## airflow - [Apache Airflow orchestration](https://docs.quake.ai/resources/iac-templates/airflow) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted workflow orchestration host you run on infrastructure you control. ## analytics-umami - [Umami self-hosted analytics](https://docs.quake.ai/resources/iac-templates/analytics-umami) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted web and product analytics host you run on infrastructure you control. ## ansible-configure-vm - [Configure a VM with Ansible](https://docs.quake.ai/resources/iac-templates/ansible-configure-vm) (template): This pattern composes Compute and Network. ## ansible-provision-and-configure - [Provision and configure with OpenTofu plus Ansible](https://docs.quake.ai/resources/iac-templates/ansible-provision-and-configure) (template): This pattern composes Compute and Network. ## api-conventions - [API conventions](https://docs.quake.ai/reference/api-conventions) (reference): Cross-service API conventions for Quake AI: error response shape, request correlation headers, and retry semantics shared across the OpenStack APIs. - [Error response format](https://docs.quake.ai/reference/api-conventions/error-response-format) (reference): Quake AI APIs return structured error details in every non-2xx response. The exact format depends on the service: OpenStack APIs return JSON, the S3-compatible interface returns XML, and compute... - [Retry and resilience patterns](https://docs.quake.ai/reference/api-conventions/retry-and-resilience) (reference): When an API call fails, the correct response depends on why it failed. Some errors are transient and resolve on retry. Others indicate a permanent problem that retrying will never fix. This page... ## api-gateway - [API gateway](https://docs.quake.ai/resources/iac-templates/api-gateway) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted API gateway on infrastructure you control. ## appsmith-internal-tools - [Appsmith internal tools](https://docs.quake.ai/resources/iac-templates/appsmith-internal-tools) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted low-code platform for internal tools and admin panels, on infrastructure you control. ## audio-worker - [Audio post-production worker](https://docs.quake.ai/resources/iac-templates/audio-worker) (template): This pattern composes Compute, Network, and Object Storage. ## auth-oidc - [Self-hosted OIDC identity provider (Keycloak)](https://docs.quake.ai/resources/iac-templates/auth-oidc) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted identity provider you run on infrastructure you control. ## block - [Block storage](https://docs.quake.ai/docs/block) (overview): Create persistent NVMe-backed block volumes on Quake AI, attach them to instances, and snapshot, extend, clone, or transfer them between projects. [markdown](https://docs.quake.ai/docs/block.md) - [Block Storage (Volumes) FAQ](https://docs.quake.ai/docs/block/faq) (faq): Frequently asked questions about Quake AI Block Storage (Volumes): creating and attaching volumes, snapshots, clones, resizing, ownership transfers, migration from other providers, and troubleshooting. [markdown](https://docs.quake.ai/docs/block/faq.md) - [Block storage concepts](https://docs.quake.ai/docs/block/concepts) (overview): Background on Quake AI block storage: what a volume is, how it attaches to an instance, how snapshots and clones differ, and what survives instance deletion. For step-by-step procedures, see the... [markdown](https://docs.quake.ai/docs/block/concepts.md) - [Block storage how-to guides](https://docs.quake.ai/docs/block/how-to) (overview): Procedural guides for block storage volumes: creating, resizing, cloning, snapshotting, and transferring volumes between projects. For background on volume lifecycle and how snapshots and clones... [markdown](https://docs.quake.ai/docs/block/how-to.md) - [Disks and persistent storage](https://docs.quake.ai/docs/block/concepts/disks) (explanation): When guides say disk, persistent disk, or block storage, they usually mean a detachable volume that survives instance reboots. On Quake AI that object is a volume in the Block Storage service... [markdown](https://docs.quake.ai/docs/block/concepts/disks.md) - [How to clone a block storage volume](https://docs.quake.ai/docs/block/how-to/clone-volume) (how-to): Create an independent copy of an existing volume. The clone is a new, fully writable volume. Changes to the clone do not affect the source, and vice versa. You can clone a source volume whether it is... [markdown](https://docs.quake.ai/docs/block/how-to/clone-volume.md) - [How to create a block storage volume](https://docs.quake.ai/docs/block/how-to/create-volume) (how-to): Create a persistent block storage volume that you can attach to virtual machine instances. Volumes persist independently of instances; you can detach, reattach, and snapshot them at any time. [markdown](https://docs.quake.ai/docs/block/how-to/create-volume.md) - [How to create a volume snapshot](https://docs.quake.ai/docs/block/how-to/create-snapshot) (how-to): Create a point-in-time snapshot of a block storage volume. Snapshots are space-efficient: they store only the difference from the volume's base state, and you can use them to create new volumes or... [markdown](https://docs.quake.ai/docs/block/how-to/create-snapshot.md) - [How to extend a block storage volume](https://docs.quake.ai/docs/block/how-to/extend-volume) (how-to): Increase the capacity of an existing block storage volume. Volume extensions are irreversible: capacity can only grow. Quake AI's Cinder supports online extend on an attached, in-use volume when you... [markdown](https://docs.quake.ai/docs/block/how-to/extend-volume.md) - [How to schedule volume snapshots and restore data](https://docs.quake.ai/docs/block/how-to/schedule-snapshots-and-restore) (how-to): Schedule recurring Cinder volume snapshots with cron on a control instance or a CI workflow. Set a retention period, remove expired snapshots, and test restores on a recovery volume. [markdown](https://docs.quake.ai/docs/block/how-to/schedule-snapshots-and-restore.md) - [How to transfer volume ownership between projects](https://docs.quake.ai/docs/block/how-to/transfer-ownership) (how-to): Move a block storage volume from one Quake AI project to another. The source project creates a transfer record. The target project accepts the record with the transfer ID and authorization key. [markdown](https://docs.quake.ai/docs/block/how-to/transfer-ownership.md) - [Volumes](https://docs.quake.ai/docs/block/concepts/volumes) (explanation): Applications need storage that survives reboots, instance deletions, and infrastructure changes. Volumes provide that: persistent block storage devices that attach to instances, behave like physical... [markdown](https://docs.quake.ai/docs/block/concepts/volumes.md) ## block-storage - [Block storage API error reference](https://docs.quake.ai/reference/block-storage/api-errors) (reference): HTTP status codes, volume state machine errors, and resolution steps for Block Storage API (Cinder) errors on Quake AI. - [Block storage console reference](https://docs.quake.ai/reference/block-storage/console) (overview): Reference pages for the block storage views in the Quake AI console. Each entry maps console UI elements to the actions and resources they manage. For procedural walkthroughs, see the how-to guides. - [Volume Snapshots Console](https://docs.quake.ai/reference/block-storage/console/volume-snapshots) (reference): Select Storage > Volume Snapshots to view the volume snapshots console. The console displays a list of volume snapshots available in your project. - [Volumes Console](https://docs.quake.ai/reference/block-storage/console/volumes) (reference): Select Storage Service > Volumes to show the volumes console. - [Volumes Service API Reference](https://docs.quake.ai/reference/block-storage/api) (reference): The Block Storage API reference documents every Cinder endpoint with curl examples and request bodies. - [Volumes service CLI reference](https://docs.quake.ai/reference/block-storage/cli) (reference): The Block Storage CLI reference lists curated commands with Quake AI-specific context. ## calcom-scheduling - [Cal.com scheduling](https://docs.quake.ai/resources/iac-templates/calcom-scheduling) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted scheduling and booking platform, on infrastructure you control. ## changelog - [Quake AI Changelog](https://docs.quake.ai/docs/changelog) (reference): Platform and infrastructure updates for Quake AI. For OpenStack API changes, see the API changelog. [markdown](https://docs.quake.ai/docs/changelog.md) ## clickhouse - [ClickHouse analytical column store](https://docs.quake.ai/resources/iac-templates/clickhouse) (template): This validated OpenTofu template composes Compute, Network, and Block Storage into a self-hosted analytical column store you run on infrastructure you control. ## containerized-app - [Containerized App on Compute](https://docs.quake.ai/resources/iac-templates/containerized-app) (template): This pattern composes Compute and Network. ## coolify-host - [Coolify host](https://docs.quake.ai/resources/iac-templates/coolify-host) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted deploy platform you run on infrastructure you control. ## creator-ai-worker - [Creator-AI inference worker](https://docs.quake.ai/resources/iac-templates/creator-ai-worker) (template): This pattern composes Compute and Object Storage. ## databases - [Database backup and recovery](https://docs.quake.ai/docs/databases/concepts/database-backup-and-recovery) (explanation): The recovery layers available to a self-managed database on Quake AI: scheduled logical dumps, volume snapshots, off-instance copies in Object Storage, and restore drills. [markdown](https://docs.quake.ai/docs/databases/concepts/database-backup-and-recovery.md) - [Database networking and access](https://docs.quake.ai/docs/databases/concepts/database-networking-and-access) (explanation): How applications and administrators reach a database on a Quake AI private subnet: private addressing, security group scope, database ports, and bastion paths. [markdown](https://docs.quake.ai/docs/databases/concepts/database-networking-and-access.md) - [Databases](https://docs.quake.ai/docs/databases) (overview): Run PostgreSQL and MySQL/MariaDB on Quake AI: compute instances with a dedicated Block Storage data volume, private network access, and scheduled logical backups. [markdown](https://docs.quake.ai/docs/databases.md) - [Databases concepts](https://docs.quake.ai/docs/databases/concepts) (overview): Background on how relational databases compose Compute, Block Storage, and Network on Quake AI, how clients reach them, and how backups and recovery work. [markdown](https://docs.quake.ai/docs/databases/concepts.md) - [Databases how-to guides](https://docs.quake.ai/docs/databases/how-to) (overview): Procedures for deploying, connecting to, backing up, restoring, and branching PostgreSQL and MySQL/MariaDB databases on Quake AI. [markdown](https://docs.quake.ai/docs/databases/how-to.md) - [Databases migration](https://docs.quake.ai/docs/databases/migration) (overview): Move an existing PostgreSQL, MySQL, or MariaDB database onto Quake AI with a dump, transfer, restore, and verification pass. [markdown](https://docs.quake.ai/docs/databases/migration.md) - [How to connect to a database on a private network](https://docs.quake.ai/docs/databases/how-to/connect-to-a-private-database) (how-to): Find a database instance's private address, confirm the security group allows your source, and open a client session from an application instance or through a bastion tunnel. [markdown](https://docs.quake.ai/docs/databases/how-to/connect-to-a-private-database.md) - [How to migrate MySQL or MariaDB to Quake AI](https://docs.quake.ai/docs/databases/migration/migrate-mysql-mariadb) (how-to): Move an existing MySQL or MariaDB database onto a Quake AI instance: check engine compatibility, dump the source, transfer through a bastion, restore, verify, and cut over. [markdown](https://docs.quake.ai/docs/databases/migration/migrate-mysql-mariadb.md) - [How to migrate PostgreSQL to Quake AI](https://docs.quake.ai/docs/databases/migration/migrate-postgresql) (how-to): Move an existing PostgreSQL database onto a Quake AI instance: check versions, dump the source, transfer the dump through a bastion, restore, verify, and cut the application over. [markdown](https://docs.quake.ai/docs/databases/migration/migrate-postgresql.md) - [Self-managed relational databases](https://docs.quake.ai/docs/databases/concepts/self-managed-relational-databases) (explanation): How a PostgreSQL or MySQL/MariaDB deployment on Quake AI composes a compute instance, a Block Storage data volume, a private network, and a security group. [markdown](https://docs.quake.ai/docs/databases/concepts/self-managed-relational-databases.md) ## dev-environment - [Development Environment](https://docs.quake.ai/resources/iac-templates/dev-environment) (template): This pattern composes Compute, Network, and Block Storage. ## docs-changelog - [Documentation Changelog](https://docs.quake.ai/docs/docs-changelog) (reference): All notable documentation changes in reverse chronological order, following Keep a Changelog. [markdown](https://docs.quake.ai/docs/docs-changelog.md) ## edge-cache - [Edge cache](https://docs.quake.ai/resources/iac-templates/edge-cache) (template): This pattern composes Compute, Network, and Block Storage into a regional HTTP cache on infrastructure you control. ## edge-functions - [Edge functions](https://docs.quake.ai/resources/iac-templates/edge-functions) (template): This pattern composes Compute, Network, and Block Storage into a regional function gateway on infrastructure you control. ## edge-reverse-proxy - [Edge reverse proxy](https://docs.quake.ai/resources/iac-templates/edge-reverse-proxy) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted reverse proxy with automatic TLS on infrastructure you control. ## edge-tunnel-gateway - [Edge tunnel gateway](https://docs.quake.ai/resources/iac-templates/edge-tunnel-gateway) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted tunnel endpoint on infrastructure you control. ## edge-waf - [Edge web application firewall appliance](https://docs.quake.ai/resources/iac-templates/edge-waf) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted L7 web application firewall on infrastructure you control. ## excalidraw-whiteboard - [Excalidraw whiteboard](https://docs.quake.ai/resources/iac-templates/excalidraw-whiteboard) (template): This pattern composes Compute and Network into a self-hosted collaborative whiteboard for a team, on infrastructure you control. ## feast - [Feast feature store](https://docs.quake.ai/resources/iac-templates/feast) (template): This validated OpenTofu template composes Compute, Network, and Block Storage into a self-hosted ML feature store you run on infrastructure you control. ## forgejo-git-ci - [Forgejo Git and CI](https://docs.quake.ai/resources/iac-templates/forgejo-git-ci) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted git forge with a built-in CI runner on infrastructure you control. ## full-stack-app - [Full-Stack Application](https://docs.quake.ai/resources/iac-templates/full-stack-app) (template): This pattern composes Compute, Network, and Block Storage. ## get-help - [Get help](https://docs.quake.ai/docs/get-help) (explanation): Where to start when something on Quake AI fails: status, troubleshooting, support tickets, and what evidence to bring. [markdown](https://docs.quake.ai/docs/get-help.md) ## glitchtip - [Self-hosted error telemetry (GlitchTip)](https://docs.quake.ai/resources/iac-templates/glitchtip) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted error-tracking service you run on infrastructure you control. ## glossary - [Glossary](https://docs.quake.ai/docs/glossary) (reference): Affinity specifies that instances within a server group are co-located on the same host or hosts. Anti-affinity specifies that instances within the server group are distributed across different hosts... [markdown](https://docs.quake.ai/docs/glossary.md) ## harbor-registry - [Harbor registry](https://docs.quake.ai/resources/iac-templates/harbor-registry) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted container registry on infrastructure you control. ## heat-simple-stack - [Heat Simple Stack](https://docs.quake.ai/resources/iac-templates/heat-simple-stack) (template): Heat is a legacy orchestration path. For new infrastructure, use the Simple VM OpenTofu template instead. ## inference-gateway - [Inference gateway](https://docs.quake.ai/resources/iac-templates/inference-gateway) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted model router on infrastructure you control. ## infisical-secrets - [Infisical secrets management](https://docs.quake.ai/resources/iac-templates/infisical-secrets) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted secrets-management platform you run on infrastructure you control. ## jupyterhub - [JupyterHub notebook server](https://docs.quake.ai/resources/iac-templates/jupyterhub) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted multi-user notebook server you run on infrastructure you control. ## k8s-cluster - [Kubernetes Cluster Bootstrap](https://docs.quake.ai/resources/iac-templates/k8s-cluster) (template): This pattern composes Compute, Network, and Kubernetes. ## launch - [Launch handoff](https://docs.quake.ai/resources/ai-assisted-development/launch) (explanation): Declare application launch intent in quake.yaml, validate it through the MCP server, and download a handoff packet for a human or control-plane consumer to execute. ## live-ingest-restream - [Live RTMP/SRT ingest and restream](https://docs.quake.ai/resources/iac-templates/live-ingest-restream) (template): This pattern composes Compute, Network, and Object Storage. ## mattermost-team-chat - [Mattermost team chat](https://docs.quake.ai/resources/iac-templates/mattermost-team-chat) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted team-chat platform for a team, on infrastructure you control. ## metabase - [Metabase BI dashboards](https://docs.quake.ai/resources/iac-templates/metabase) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted business-intelligence host you run on infrastructure you control. ## minio-iceberg - [MinIO + Apache Iceberg lakehouse](https://docs.quake.ai/resources/iac-templates/minio-iceberg) (template): This validated OpenTofu template composes Compute, Network, and Block Storage into a self-hosted open lakehouse catalog you run on infrastructure you control. ## mlflow - [MLflow experiment tracking](https://docs.quake.ai/resources/iac-templates/mlflow) (template): This pattern composes Compute, Network, Block Storage, and Object Storage into a self-hosted experiment-tracking and model-registry server you run on infrastructure you control. ## monitoring-stack - [Monitoring Stack (Prometheus + Grafana)](https://docs.quake.ai/resources/iac-templates/monitoring-stack) (template): This pattern composes Compute, Network, and Block Storage. ## mysql-database - [MySQL/MariaDB Database](https://docs.quake.ai/resources/iac-templates/mysql-database) (template): This pattern composes Compute, Network, and Block Storage. ## n8n-workflow - [n8n workflow automation](https://docs.quake.ai/resources/iac-templates/n8n-workflow) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted workflow-automation host you run on infrastructure you control. ## nextcloud-files - [Nextcloud files and collaboration](https://docs.quake.ai/resources/iac-templates/nextcloud-files) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted file-sync and collaboration platform for a team, on infrastructure you control. ## nextjs-app - [Next.js App on Compute](https://docs.quake.ai/resources/iac-templates/nextjs-app) (template): This pattern composes Compute and Network. ## object - [Buckets](https://docs.quake.ai/docs/object/concepts/buckets) (explanation): A bucket is the top-level container in object storage: a named space that holds objects (files) addressed by keys. On Quake AI buckets live in object storage (OpenStack Swift) and appear in the... [markdown](https://docs.quake.ai/docs/object/concepts/buckets.md) - [Configure bucket CORS](https://docs.quake.ai/docs/object/how-to/configure-bucket-cors) (how-to): CORS, or Cross-Origin Resource Sharing, is a security feature built into your web browser that decides whether to allow a website to access resources from a different website. Think of it as your... [markdown](https://docs.quake.ai/docs/object/how-to/configure-bucket-cors.md) - [How to access an uploaded file in object storage](https://docs.quake.ai/docs/object/how-to/access-uploaded-file) (how-to): Download or view a file stored in an object storage bucket. For public buckets, you can also reach files through a direct URL without authentication. [markdown](https://docs.quake.ai/docs/object/how-to/access-uploaded-file.md) - [How to access buckets via FTP, FTPS, or SFTP](https://docs.quake.ai/docs/object/how-to/access-via-ftp-sftp) (how-to): Stand up an Ubuntu gateway VM that mounts a Quake AI bucket with s3fs, then serve that mount over SFTP, FTPS, or FTP for clients that cannot speak S3. [markdown](https://docs.quake.ai/docs/object/how-to/access-via-ftp-sftp.md) - [How to Back Up to Quake AI Object Storage](https://docs.quake.ai/docs/object/migration/backup-to-quake-ai) (how-to): Use Quake AI object storage as an off-site backup target in a 3-2-1 strategy: three copies of your data, on two different media, with one copy off-site. This guide covers file-level backups with... [markdown](https://docs.quake.ai/docs/object/migration/backup-to-quake-ai.md) - [How to configure server-side encryption](https://docs.quake.ai/docs/object/how-to/configure-server-side-encryption) (how-to): Use Server-Side Encryption with Customer-Provided Keys (SSE-C) to encrypt an object with a 256-bit key that you manage. Quake AI Object Storage applies AES-256 encryption and requires the same key for... [markdown](https://docs.quake.ai/docs/object/how-to/configure-server-side-encryption.md) - [How to create a folder in an object storage bucket](https://docs.quake.ai/docs/object/how-to/create-folder) (how-to): Create a logical folder (prefix) within an object storage bucket to organize objects. Folders in object storage are not real directories; they are a naming convention that the console and many clients... [markdown](https://docs.quake.ai/docs/object/how-to/create-folder.md) - [How to create an object storage bucket](https://docs.quake.ai/docs/object/how-to/create-container) (how-to): Create an object storage bucket (also called a container) to store files, backups, and other unstructured data. Bucket names must be unique within your project and cannot be changed after creation. [markdown](https://docs.quake.ai/docs/object/how-to/create-container.md) - [How to create S3 credentials](https://docs.quake.ai/docs/object/how-to/create-s3-credentials) (how-to): Generate EC2-compatible (S3) credentials to access Quake AI Object Storage using S3-compatible tools such as s3cmd, the AWS CLI, rclone, and language SDKs like boto3. S3 credentials are separate from... [markdown](https://docs.quake.ai/docs/object/how-to/create-s3-credentials.md) - [How to enable versioning on an object storage bucket](https://docs.quake.ai/docs/object/how-to/enable-versioning) (how-to): Enable versioning on an object storage bucket to retain all versions of each object. Versioning protects against accidental overwrites and deletions; you can restore any previous version at any time. [markdown](https://docs.quake.ai/docs/object/how-to/enable-versioning.md) - [How to grant access control on an object storage bucket](https://docs.quake.ai/docs/object/how-to/grant-access-control) (how-to): Control who can read from and write to an object storage bucket. Quake AI supports two levels of access control: [markdown](https://docs.quake.ai/docs/object/how-to/grant-access-control.md) - [How to host a static site on object storage](https://docs.quake.ai/docs/object/how-to/host-static-site) (how-to): Serve HTML, CSS, JavaScript, and image files from a Quake AI object storage bucket. For a custom domain or HTTPS at the edge, put a CDN in front of the bucket and point your domain at the CDN. [markdown](https://docs.quake.ai/docs/object/how-to/host-static-site.md) - [How to Migrate from AWS S3 to Quake AI](https://docs.quake.ai/docs/object/migration/migrate-from-s3) (how-to): This guide walks through a complete migration of objects from an AWS S3 bucket to Quake AI object storage. The recommended tool is rclone, which copies data directly between providers without staging... [markdown](https://docs.quake.ai/docs/object/migration/migrate-from-s3.md) - [How to Migrate from Azure blob storage to Quake AI](https://docs.quake.ai/docs/object/migration/migrate-from-azure) (how-to): This guide walks through migrating objects from an Azure Blob Storage container to Quake AI object storage using rclone for direct cloud-to-cloud transfer. [markdown](https://docs.quake.ai/docs/object/migration/migrate-from-azure.md) - [How to Migrate from Backblaze B2 to Quake AI](https://docs.quake.ai/docs/object/migration/migrate-from-backblaze) (how-to): Backblaze B2 supports both its native API and an S3-compatible API. rclone handles both, copying data directly to Quake AI with no local staging required. [markdown](https://docs.quake.ai/docs/object/migration/migrate-from-backblaze.md) - [How to Migrate from DigitalOcean Spaces to Quake AI](https://docs.quake.ai/docs/object/migration/migrate-from-digitalocean) (how-to): DigitalOcean Spaces and Quake AI both use S3-compatible APIs. rclone copies data directly between endpoints with no local staging required. [markdown](https://docs.quake.ai/docs/object/migration/migrate-from-digitalocean.md) - [How to Migrate from Google Cloud storage to Quake AI](https://docs.quake.ai/docs/object/migration/migrate-from-gcs) (how-to): This guide walks through migrating objects from a Google Cloud Storage (GCS) bucket to Quake AI object storage using rclone for direct cloud-to-cloud transfer. [markdown](https://docs.quake.ai/docs/object/migration/migrate-from-gcs.md) - [How to Migrate from Hetzner object storage to Quake AI](https://docs.quake.ai/docs/object/migration/migrate-from-hetzner) (how-to): Both Hetzner Object Storage and Quake AI use S3-compatible APIs, making this one of the simplest migration paths. rclone copies data directly between endpoints with no local staging required. [markdown](https://docs.quake.ai/docs/object/migration/migrate-from-hetzner.md) - [How to Migrate from Linode object storage to Quake AI](https://docs.quake.ai/docs/object/migration/migrate-from-linode) (how-to): Linode Object Storage (Akamai Cloud Computing) and Quake AI both expose an S3-compatible API. rclone copies data directly between the two endpoints with no local staging required. [markdown](https://docs.quake.ai/docs/object/migration/migrate-from-linode.md) - [How to Migrate from Vultr object storage to Quake AI](https://docs.quake.ai/docs/object/migration/migrate-from-vultr) (how-to): Vultr Object Storage and Quake AI both expose an S3-compatible API. rclone copies data directly between the two endpoints with no local staging required. [markdown](https://docs.quake.ai/docs/object/migration/migrate-from-vultr.md) - [How to Migrate from Wasabi to Quake AI](https://docs.quake.ai/docs/object/migration/migrate-from-wasabi) (how-to): Both Wasabi and Quake AI use S3-compatible APIs. rclone copies data directly between endpoints with no local staging required. [markdown](https://docs.quake.ai/docs/object/migration/migrate-from-wasabi.md) - [How to mount S3 storage on Windows, macOS, and Linux](https://docs.quake.ai/docs/object/how-to/mount-s3-storage) (how-to): Mount a Quake AI Object Storage bucket as a local drive or filesystem with rclone. You can then browse, read, and write objects through your operating system's file tools. [markdown](https://docs.quake.ai/docs/object/how-to/mount-s3-storage.md) - [How to Set Up Multi-Cloud Object Storage Sync](https://docs.quake.ai/docs/object/migration/multi-cloud-sync) (how-to): Keep data synchronized between Quake AI and another S3-compatible provider. This guide covers active-passive replication, selective prefix sync, and monitoring for continuous sync workflows. [markdown](https://docs.quake.ai/docs/object/migration/multi-cloud-sync.md) - [How to Update Your Application's S3 Endpoint for Quake AI](https://docs.quake.ai/docs/object/migration/update-application-endpoint) (how-to): After migrating your data, update your application code to read and write from Quake AI instead of the previous provider. Because Quake AI is S3-compatible, this is typically a configuration change... [markdown](https://docs.quake.ai/docs/object/migration/update-application-endpoint.md) - [How to upload a file to an object storage bucket](https://docs.quake.ai/docs/object/how-to/upload-file) (how-to): Upload a file to a bucket (container) in Quake AI Object Storage. The file becomes an object addressable by its key (the path within the bucket). [markdown](https://docs.quake.ai/docs/object/how-to/upload-file.md) - [How to use CloudFront with object storage buckets](https://docs.quake.ai/docs/object/how-to/use-cloudfront-with-buckets) (how-to): For Cloudflare, Bunny.net, Fastly, and other CDN providers, start with How to put a CDN in front of a Quake AI workload. This guide covers AWS CloudFront. [markdown](https://docs.quake.ai/docs/object/how-to/use-cloudfront-with-buckets.md) - [Migration Tools Comparison](https://docs.quake.ai/docs/object/migration/tools-comparison) (reference): Five tools cover the most common object storage migration and backup scenarios with Quake AI. Each has trade-offs in capability, speed, and ease of use. [markdown](https://docs.quake.ai/docs/object/migration/tools-comparison.md) - [Object Storage](https://docs.quake.ai/docs/object) (overview): Store and retrieve unstructured data on Quake AI's S3-compatible object storage using standard S3 SDKs and tools, backed by OpenStack Swift. [markdown](https://docs.quake.ai/docs/object.md) - [Object storage concepts](https://docs.quake.ai/docs/object/concepts) (overview): Background on Quake AI's S3-compatible object storage: how buckets and objects are organized, how the API authenticates requests, and how versioning and access control fit together. For step-by-step... [markdown](https://docs.quake.ai/docs/object/concepts.md) - [Object Storage FAQ](https://docs.quake.ai/docs/object/faq) (faq): Frequently asked questions about Quake AI Object Storage: buckets, S3 compatibility, access control policies, versioning, encryption, CORS, FTP/SFTP, mounting, and migration from AWS S3, GCS, Azure, Backblaze, Wasabi, Hetzner, and DigitalOcean. [markdown](https://docs.quake.ai/docs/object/faq.md) - [Object storage how-to guides](https://docs.quake.ai/docs/object/how-to) (overview): Procedural guides for Quake AI Object Storage: creating buckets, uploading and accessing files, managing credentials, enabling versioning, controlling access, and mounting a bucket from a workstation... [markdown](https://docs.quake.ai/docs/object/how-to.md) - [Object Storage Migration and Backup](https://docs.quake.ai/docs/object/migration) (overview): Move data to Quake AI from another provider, use Quake AI as a backup target alongside your primary storage, or keep multiple clouds in sync. Quake AI's S3-compatible API means your existing tools and... [markdown](https://docs.quake.ai/docs/object/migration.md) - [Plan Your Object Storage Migration](https://docs.quake.ai/docs/object/migration/plan-your-migration) (explanation): Quake AI object storage exposes an S3-compatible API, so many tools and SDKs built for AWS S3 also work with Quake AI. Before migrating data, review what is and is not supported so you can plan around... [markdown](https://docs.quake.ai/docs/object/migration/plan-your-migration.md) - [S3 on Quake AI](https://docs.quake.ai/docs/object/concepts/s3) (explanation): Amazon S3 naming is everywhere in tooling, SDKs, and migration guides. On Quake AI, S3-compatible access targets object storage backed by OpenStack Swift with an S3 API gateway. You create buckets... [markdown](https://docs.quake.ai/docs/object/concepts/s3.md) - [S3-compatible object storage](https://docs.quake.ai/docs/object/concepts/object-storage) (explanation): An object in object storage is a blob of bytes plus metadata plus a unique identifier, stored in a flat namespace inside a bucket. Applications read and write objects over HTTP APIs. [markdown](https://docs.quake.ai/docs/object/concepts/object-storage.md) ## object-storage - [Bucket policy examples](https://docs.quake.ai/reference/object-storage/bucket-policies) (reference): AWS-style S3 bucket policy JSON examples for Quake AI object storage: public read, prefix-scoped read, IP restrictions, and read-only principals. - [Object storage API error reference](https://docs.quake.ai/reference/object-storage/api-errors) (reference): S3-compatible error codes, authentication failures, and resolution steps for Object Storage API errors on Quake AI. - [Object storage CLI reference](https://docs.quake.ai/reference/object-storage/cli) (reference): The Swift command reference covers the swift client. The S3-compatible storage tools reference covers AWS CLI, s3cmd, and rclone. - [Object Storage Console](https://docs.quake.ai/reference/object-storage/console/object-storage) (reference): Use the object storage console to manage buckets (called containers in OpenStack Swift CLI/API) and upload files to your cloud project. - [Object storage console reference](https://docs.quake.ai/reference/object-storage/console) (overview): Reference pages for the Object Storage views in the Quake AI console. Each entry maps console UI elements to the actions and resources they manage. For procedural walkthroughs, see the how-to guides. - [Object Storage Service API Reference](https://docs.quake.ai/reference/object-storage/api) (reference): Endpoint documentation lives on the Object Storage API reference (Swift) and the S3-compatible API reference. ## outline-docs - [Outline team knowledge base](https://docs.quake.ai/resources/iac-templates/outline-docs) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted team wiki you run on infrastructure you control. ## plane-project-management - [Plane project management](https://docs.quake.ai/resources/iac-templates/plane-project-management) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted project and work-management platform you run on infrastructure you control. ## private-network-vpn - [Private Network + VPN](https://docs.quake.ai/resources/iac-templates/private-network-vpn) (template): This pattern composes Network and Compute. ## qdrant - [Qdrant vector database](https://docs.quake.ai/resources/iac-templates/qdrant) (template): This pattern composes Compute, Network, and Block Storage into a private vector database. ## quake-yaml - [quake.yaml reference](https://docs.quake.ai/resources/ai-assisted-development/quake-yaml) (reference): Reference for quake.yaml manifest version 1: top-level fields, enum values, environment rules, service and secret constraints, and flavor or template resolution. ## quickstart-with-ai-agent - [How to provision a server with an AI agent](https://docs.quake.ai/resources/ai-assisted-development/quickstart-with-ai-agent) (how-to): Drive an AI coding assistant connected to the Quake AI MCP server to provision a running server: prompt the agent, review the generated OpenTofu, and apply it yourself. ## redis-cache - [Redis / Valkey cache](https://docs.quake.ai/resources/iac-templates/redis-cache) (template): This pattern composes Compute, Network, and Block Storage into a private cache. ## redpanda - [Redpanda Kafka-API streaming](https://docs.quake.ai/resources/iac-templates/redpanda) (template): This validated OpenTofu template composes Compute, Network, and Block Storage into a self-hosted Kafka-API streaming broker you run on infrastructure you control. ## render-farm-worker - [CPU render-farm worker pool](https://docs.quake.ai/resources/iac-templates/render-farm-worker) (template): This pattern composes Compute and Object Storage. ## s3-storage-acl - [S3 Storage with ACLs](https://docs.quake.ai/resources/iac-templates/s3-storage-acl) (template): This pattern composes Object Storage. ## save-to-obsidian-git-notion - [How to save Quake AI knowledge to Obsidian, Git, or Notion](https://docs.quake.ai/resources/ai-assisted-development/save-to-obsidian-git-notion) (how-to): Save Quake AI MCP results into your notebook or repository. Every tool response carries a portable Markdown artifact with a suggested vault path, and the export_okf tool returns a linked knowledge bundle you can drop into a vault. ## security - [How to store application secrets and inject them at runtime](https://docs.quake.ai/docs/security/how-to/inject-app-secrets) (how-to): Keep database passwords, API tokens, and signing keys out of git by injecting them at deploy time. Quake AI does not run a managed secrets manager like AWS Secrets Manager. Use CI secrets plus... [markdown](https://docs.quake.ai/docs/security/how-to/inject-app-secrets.md) - [Quake AI: Compliance & Certifications](https://docs.quake.ai/docs/security/compliance-and-certifications) (reference): This page lists the compliance attestations Quake AI currently holds, and the regulatory frameworks it does not currently hold. [markdown](https://docs.quake.ai/docs/security/compliance-and-certifications.md) - [Secrets management](https://docs.quake.ai/docs/security/secrets-management) (explanation): Managing credentials securely is a core part of operating workloads on any cloud platform. Quake AI uses distinct credential types, each with different scopes, lifetimes, and rotation requirements... [markdown](https://docs.quake.ai/docs/security/secrets-management.md) - [Security](https://docs.quake.ai/docs/security) (overview): Understand the Quake AI shared responsibility model: the platform secures the infrastructure while you protect your workloads, data, and access. [markdown](https://docs.quake.ai/docs/security.md) - [Security hardening checklist](https://docs.quake.ai/docs/security/hardening-checklist) (how-to): Use this checklist to audit and harden your Quake AI project. Each item links to the relevant documentation for implementation details. Work through the sections in order: project-level controls... [markdown](https://docs.quake.ai/docs/security/hardening-checklist.md) - [Shared responsibility model](https://docs.quake.ai/docs/security/shared-responsibility) (explanation): Security on Quake AI is a partnership between the platform and you. Quake AI secures the infrastructure that runs all services: physical hardware, hypervisors, network backbone, and the control plane... [markdown](https://docs.quake.ai/docs/security/shared-responsibility.md) ## selenium-grid-testing - [Selenium Grid testing](https://docs.quake.ai/resources/iac-templates/selenium-grid-testing) (template): This pattern composes Compute and Network into a self-hosted browser-testing grid for WebDriver-based UI test suites, on infrastructure you control. ## self-managed-postgres - [Self-Managed PostgreSQL](https://docs.quake.ai/resources/iac-templates/self-managed-postgres) (template): This pattern composes Compute, Network, and Block Storage. ## simple-vm - [Simple VM with Floating IP](https://docs.quake.ai/resources/iac-templates/simple-vm) (template): This pattern composes Compute and Network. ## streamlit - [Streamlit data-app host](https://docs.quake.ai/resources/iac-templates/streamlit) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted data-app host you run on infrastructure you control. ## supabase-selfhost - [Supabase self-host stack](https://docs.quake.ai/resources/iac-templates/supabase-selfhost) (template): This pattern composes Compute, Network, and Block Storage into the full self-hosted Supabase backend you run on infrastructure you control. ## superset - [Apache Superset BI](https://docs.quake.ai/resources/iac-templates/superset) (template): This validated OpenTofu template composes Compute, Network, and Block Storage into a self-hosted business-intelligence host you run on infrastructure you control. ## three-tier-app - [Three-Tier Application](https://docs.quake.ai/resources/iac-templates/three-tier-app) (template): This pattern composes Compute, Network, and Block Storage. ## trino - [Trino federated query engine](https://docs.quake.ai/resources/iac-templates/trino) (template): This validated OpenTofu template composes Compute, Network, and Block Storage into a self-hosted federated SQL query engine you run on infrastructure you control. ## unleash-feature-flags - [Unleash feature flags](https://docs.quake.ai/resources/iac-templates/unleash-feature-flags) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted feature-flags and experimentation platform you run on infrastructure you control. ## uptime-kuma - [Uptime Kuma status and monitoring](https://docs.quake.ai/resources/iac-templates/uptime-kuma) (template): This pattern composes Compute, Network, and Block Storage into a self-hosted uptime-monitoring and status-page host you run on infrastructure you control. ## usage-guidelines - [Usage guidelines](https://docs.quake.ai/docs/usage-guidelines) (reference): This page sets the terms under which Quake AI publishes sample code, command line transcripts, infrastructure-as-code templates, proofs of concept, configuration snippets, and other technical content... [markdown](https://docs.quake.ai/docs/usage-guidelines.md) ## what-is-the-mcp-server - [What the MCP server is and why to use it](https://docs.quake.ai/resources/ai-assisted-development/what-is-the-mcp-server) (explanation): The Quake AI MCP server hands your AI coding assistant current documentation and compile-checked IaC templates so it works from accurate Quake AI data. Read what the server is, what its core tools do, and when to reach for each. ## wordpress-mysql - [WordPress + MySQL on Compute](https://docs.quake.ai/resources/iac-templates/wordpress-mysql) (template): This pattern composes Compute, Network, and Block Storage. # Platform Context for AI-Assisted Infrastructure > Structured platform knowledge for AI tools generating Quake AI IaC. This section reduces hallucination by providing ground-truth constraints, flavor specs, and template parameters. ## Flavors Quake AI offers 26 instance flavors across 4 categories. All flavors are public. Naming convention: {family}{generation}{arch}.{size} — m=general purpose, c=compute optimized, r=memory optimized, s=shared; 2=gen2, 1=gen1; a=AMD EPYC. ### General Purpose — balanced vCPU:RAM (1:4 ratio) m2a.large: 2 vCPUs, 8.00 GiB, 0.5 Gbps network m2a.xlarge: 4 vCPUs, 16.00 GiB, 1 Gbps network m2a.2xlarge: 8 vCPUs, 32.00 GiB, 2 Gbps network m2a.4xlarge: 16 vCPUs, 64.00 GiB, 4 Gbps network m2a.8xlarge: 32 vCPUs, 128.00 GiB, 8 Gbps network m2a.16xlarge: 64 vCPUs, 256.00 GiB, 16 Gbps network m2a.32xlarge: 128 vCPUs, 512.00 GiB, 32 Gbps network ### Compute Optimized — high vCPU:RAM (1:2 ratio) c2a.large: 2 vCPUs, 4.00 GiB, 0.5 Gbps network c2a.xlarge: 4 vCPUs, 8.00 GiB, 1 Gbps network c2a.2xlarge: 8 vCPUs, 16.00 GiB, 2 Gbps network c2a.4xlarge: 16 vCPUs, 32.00 GiB, 4 Gbps network c2a.8xlarge: 32 vCPUs, 64.00 GiB, 8 Gbps network c2a.16xlarge: 64 vCPUs, 128.00 GiB, 16 Gbps network c2a.32xlarge: 128 vCPUs, 256.00 GiB, 32 Gbps network ### Memory Optimized — high RAM:vCPU (1:8 ratio) r2a.large: 2 vCPUs, 16.00 GiB, 0.5 Gbps network r2a.xlarge: 4 vCPUs, 32.00 GiB, 1 Gbps network r2a.2xlarge: 8 vCPUs, 64.00 GiB, 2 Gbps network r2a.4xlarge: 16 vCPUs, 128.00 GiB, 4 Gbps network r2a.8xlarge: 32 vCPUs, 256.00 GiB, 8 Gbps network r2a.16xlarge: 64 vCPUs, 512.00 GiB, 16 Gbps network ### Shared Resources — burstable, cost-efficient s1a.micro: 1 vCPUs, 1.00 GiB, 0.5 Gbps network s1a.small: 2 vCPUs, 2.00 GiB, 0.5 Gbps network s1a.medium: 4 vCPUs, 4.00 GiB, 0.5 Gbps network s1a.large: 8 vCPUs, 8.00 GiB, 0.5 Gbps network s1a.xlarge: 16 vCPUs, 16.00 GiB, 1 Gbps network s1a.2xlarge: 32 vCPUs, 32.00 GiB, 2 Gbps network ## Infrastructure Templates 60 validated OpenTofu templates (1 Heat legacy). Each provisions production-ready infrastructure on Quake AI. ### Airbyte ingestion (ELT) Format: opentofu | Services: compute, network, storage/block | Time: 30 minutes Parameters: key_name: string (required) flavor_name: string (default: m2a.large) image_name: string (default: Ubuntu-24.04) app_name: string (default: airbyte) volume_size: number (default: 50) external_network: string (default: PublicStatic) private_cidr: string (default: 10.49.0.0/24) ui_allowed_cidr: string (default: 10.49.0.0/24) airbyte_version: string (default: 0.63.15) ### Apache Airflow orchestration Format: opentofu | Services: compute, network, storage/block | Time: 25 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.medium) image_name: string (default: Ubuntu-24.04) app_name: string (default: airflow) volume_size: number (default: 40) external_network: string (default: PublicStatic) private_cidr: string (default: 10.40.0.0/24) ui_allowed_cidr: string (default: 10.40.0.0/24) ### Apache Superset BI Format: opentofu | Services: compute, network, storage/block | Time: 25 minutes Parameters: key_name: string (required) flavor_name: string (default: m2a.large) image_name: string (default: Ubuntu-24.04) app_name: string (default: superset) volume_size: number (default: 40) external_network: string (default: PublicStatic) private_cidr: string (default: 10.48.0.0/24) ui_allowed_cidr: string (default: 10.48.0.0/24) ### API gateway Format: opentofu | Services: compute, network, storage/block | Time: 30 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.medium) image_name: string (default: Ubuntu-24.04) app_name: string (default: api-gateway) apisix_version: string (default: 3.11.0-debian) admin_port: number (default: 9180) domain: string (default: ) upstream_services: list(object) (required) volume_size: number (default: 20) external_network: string (default: PublicStatic) private_cidr: string (default: 10.42.0.0/24) ### Appsmith internal tools Format: opentofu | Services: compute, network, storage/block | Time: 20 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.medium) image_name: string (default: Ubuntu-24.04) app_name: string (default: appsmith) volume_size: number (default: 20) external_network: string (default: PublicStatic) private_cidr: string (default: 10.53.0.0/24) app_allowed_cidr: string (default: 10.53.0.0/24) ### Audio post-production worker Format: opentofu | Services: compute, storage/object, network | Time: 25 minutes Parameters: key_name: string (required) s3_access_key: string sensitive = true (required) s3_secret_key: string sensitive = true (required) input_bucket_name: string (required) output_bucket_name: string (required) worker_flavor: string (default: c2a.large) image_name: string (default: Ubuntu-24.04) external_network: string (default: PublicStatic) private_cidr: string (default: 192.168.70.0/24) instance_name: string (default: audio-worker) s3_endpoint: string (default: https://object.us-east-1.rumble.cloud) s3_region: string (default: us-east-1) webhook_url: string (default: ) enable_transcription: bool (required) poll_interval_seconds: number (default: 60) target_lufs: number (required) ### Cal.com scheduling Format: opentofu | Services: compute, network, storage/block | Time: 30 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.large) image_name: string (default: Ubuntu-24.04) app_name: string (default: calcom) volume_size: number (default: 30) external_network: string (default: PublicStatic) private_cidr: string (default: 10.56.0.0/24) app_allowed_cidr: string (default: 10.56.0.0/24) ### ClickHouse analytical column store Format: opentofu | Services: compute, network, storage/block | Time: 25 minutes Parameters: key_name: string (required) flavor_name: string (default: m2a.large) image_name: string (default: Ubuntu-24.04) app_name: string (default: clickhouse) volume_size: number (default: 50) external_network: string (default: PublicStatic) private_cidr: string (default: 10.49.0.0/24) client_allowed_cidr: string (default: 10.49.0.0/24) ### Configure a VM with Ansible Format: ansible | Services: compute, network | Time: 15 minutes ### Containerized App on Compute Format: opentofu | Services: compute, network | Time: 15 minutes Parameters: flavor_name: string (default: s1a.small) image_name: string (default: Ubuntu-24.04) key_name: string (required) app_name: string (default: containerized-app) container_image: string (default: nginx:alpine) container_env: map(string) (required) container_port: number (default: 80) host_port: number (default: 80) external_network: string (default: PublicEphemeral) private_cidr: string (default: 10.10.10.0/24) ### Coolify host Format: opentofu | Services: compute, network, storage/block | Time: 25 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.medium) image_name: string (default: Ubuntu-24.04) app_name: string (default: coolify) volume_size: number (default: 50) external_network: string (default: PublicStatic) private_cidr: string (default: 10.30.0.0/24) dashboard_allowed_cidr: string (default: 10.30.0.0/24) ### CPU render-farm worker pool Format: opentofu | Services: compute, storage/object | Time: 45 minutes Parameters: key_name: string (required) s3_access_key: string sensitive = true (required) s3_secret_key: string sensitive = true (required) jobs_bucket_name: string (required) output_bucket_name: string (required) worker_count: number (default: 2) worker_flavor: string (default: c2a.large) dispatcher_flavor: string (default: c2a.large) image_name: string (default: Ubuntu-24.04) external_network: string (default: PublicStatic) private_cidr: string (default: 192.168.80.0/24) instance_prefix: string (default: render-farm) worker_mode: string (default: queue-puller) enable_dispatcher_fip: bool (required) admin_cidr: string (default: 0.0.0.0/0) submit_cidr: string (default: 0.0.0.0/0) enable_monitoring: bool (required) poll_interval_seconds: number (default: 30) s3_endpoint: string (default: https://object.us-east-1.rumble.cloud) s3_region: string (default: us-east-1) ### Creator-AI inference worker Format: opentofu | Services: compute, storage/object | Time: 40 minutes Parameters: key_name: string (required) s3_access_key: string sensitive = true (required) s3_secret_key: string sensitive = true (required) data_bucket_name: string (required) inference_flavor: string (default: c2a.large) image_name: string (default: Ubuntu-24.04) external_network: string (default: PublicStatic) private_cidr: string (default: 192.168.85.0/24) instance_name: string (default: creator-ai-worker) ollama_model: string (default: llama3.2:1b) enable_public_api: bool (required) admin_cidr: string (default: 0.0.0.0/0) api_token: string (default: ) s3_endpoint: string (default: https://object.us-east-1.rumble.cloud) s3_region: string (default: us-east-1) ### Development Environment Format: opentofu | Services: compute, network, storage/block | Time: 20 minutes Parameters: dev_vm_count: number (default: 2) flavor_name: string (default: s1a.medium) shared_volume_size: number (default: 100) image_name: string (default: Ubuntu-24.04) dev_tools: list(string) (required) key_name: string (required) external_network: string (default: PublicEphemeral) private_cidr: string (default: 192.168.30.0/24) bastion_flavor: string (default: s1a.small) ### Edge cache Format: opentofu | Services: compute, network, storage/block | Time: 25 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.small) image_name: string (default: Ubuntu-24.04) app_name: string (default: edge-cache) varnish_version: string (default: 7.6) caddy_version: string (default: 2-alpine) domain: string (default: ) upstream_host: string (default: 10.42.0.10) upstream_port: number (default: 8080) cache_size: number (default: 2) volume_size: number (default: 10) external_network: string (default: PublicStatic) private_cidr: string (default: 10.42.0.0/24) ### Edge functions Format: opentofu | Services: compute, network, storage/block | Time: 30 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.small) image_name: string (default: Ubuntu-24.04) app_name: string (default: edge-functions) caddy_version: string (default: 2-alpine) domain: string (default: ) volume_size: number (default: 20) external_network: string (default: PublicStatic) private_cidr: string (default: 10.42.0.0/24) ### Edge reverse proxy Format: opentofu | Services: compute, network, storage/block | Time: 20 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.small) image_name: string (default: Ubuntu-24.04) app_name: string (default: edge-reverse-proxy) caddy_version: string (default: 2-alpine) domain: string (default: ) upstream_host: string (default: 10.42.0.10) upstream_port: number (default: 8080) volume_size: number (default: 10) external_network: string (default: PublicStatic) private_cidr: string (default: 10.42.0.0/24) ### Edge tunnel gateway Format: opentofu | Services: compute, network, storage/block | Time: 30 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.small) image_name: string (default: Ubuntu-24.04) app_name: string (default: edge-tunnel-gateway) pangolin_version: string (default: 1.18.4) gerbil_version: string (default: 1.18.4) traefik_version: string (default: v3.7) badger_version: string (default: v1.3.2) wireguard_port: number (default: 51820) wireguard_client_port: number (default: 21820) dashboard_port: number (default: 3001) domain: string (default: ) base_domain: string (default: ) letsencrypt_email: string (default: ) volume_size: number (default: 20) external_network: string (default: PublicStatic) private_cidr: string (default: 10.42.0.0/24) ### Edge web application firewall appliance Format: opentofu | Services: compute, network, storage/block | Time: 25 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.small) image_name: string (default: Ubuntu-24.04) app_name: string (default: edge-waf) safeline_version: string (default: latest) mgt_port: number (default: 9443) domain: string (default: ) upstream_host: string (default: 10.42.0.10) upstream_port: number (default: 8080) volume_size: number (default: 20) external_network: string (default: PublicStatic) private_cidr: string (default: 10.42.0.0/24) ### Excalidraw whiteboard Format: opentofu | Services: compute, network | Time: 20 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.small) image_name: string (default: Ubuntu-24.04) app_name: string (default: excalidraw) external_network: string (default: PublicStatic) private_cidr: string (default: 10.58.0.0/24) app_allowed_cidr: string (default: 10.58.0.0/24) ### Feast feature store Format: opentofu | Services: compute, network, storage/block | Time: 25 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.small) image_name: string (default: Ubuntu-24.04) app_name: string (default: feast) volume_size: number (default: 30) external_network: string (default: PublicStatic) private_cidr: string (default: 10.55.0.0/24) server_allowed_cidr: string (default: 10.55.0.0/24) store_mode: string (default: bundled) postgres_host: string (default: ) postgres_port: number (default: 5432) postgres_database: string (default: feast) postgres_user: string (default: feast) redis_host: string (default: ) redis_port: number (default: 6379) ### Forgejo Git and CI Format: opentofu | Services: compute, network, storage/block | Time: 25 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.medium) image_name: string (default: Ubuntu-24.04) app_name: string (default: forgejo) admin_username: string (default: forgejo-admin) admin_email: string (default: admin@example.com) domain: string (default: ) volume_size: number (default: 40) git_ssh_port: number (default: 2222) external_network: string (default: PublicStatic) private_cidr: string (default: 10.40.0.0/24) ### Full-Stack Application Format: opentofu | Services: compute, network, storage/block | Time: 30 minutes Parameters: web_flavor: string (default: s1a.small) app_flavor: string (default: s1a.medium) db_flavor: string (default: m2a.large) db_volume_size: number (default: 50) image_name: string (default: Ubuntu-24.04) key_name: string (required) external_network: string (default: PublicStatic) private_cidr: string (default: 192.168.50.0/24) dns_nameservers: list(string) (required) db_name: string (default: appdb) db_user: string (default: appuser) db_password: string sensitive = true (required) ### Harbor registry Format: opentofu | Services: compute, network, storage/block | Time: 30 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.large) image_name: string (default: Ubuntu-24.04) app_name: string (default: harbor) harbor_version: string (default: v2.14.4) domain: string (default: ) volume_size: number (default: 100) enable_trivy: bool (required) external_network: string (default: PublicStatic) private_cidr: string (default: 10.50.0.0/24) ### Heat Simple Stack Format: heat | Services: compute, network | Time: 10 minutes ### Inference gateway Format: opentofu | Services: compute, network, storage/block | Time: 30 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.medium) image_name: string (default: Ubuntu-24.04) app_name: string (default: inference-gateway) litellm_version: string (default: main-stable) domain: string (default: ) volume_size: number (default: 20) enable_db: bool (required) external_network: string (default: PublicStatic) private_cidr: string (default: 10.60.0.0/24) ### Infisical secrets management Format: opentofu | Services: compute, network, storage/block | Time: 25 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.medium) image_name: string (default: Ubuntu-24.04) app_name: string (default: infisical) volume_size: number (default: 20) external_network: string (default: PublicStatic) private_cidr: string (default: 10.47.0.0/24) app_allowed_cidr: string (default: 10.47.0.0/24) ### JupyterHub notebook server Format: opentofu | Services: compute, network, storage/block | Time: 25 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.medium) image_name: string (default: Ubuntu-24.04) app_name: string (default: jupyterhub) volume_size: number (default: 30) external_network: string (default: PublicStatic) private_cidr: string (default: 10.40.0.0/24) hub_allowed_cidr: string (default: 10.40.0.0/24) notebook_image: string (default: quay.io/jupyter/scipy-notebook:2024-10-14) ### Kubernetes Cluster Bootstrap Format: opentofu | Services: compute, network, kubernetes | Time: 45 minutes Parameters: control_plane_count: number (default: 1) worker_count: number (default: 3) cp_flavor: string (default: m2a.xlarge) worker_flavor: string (default: s1a.medium) k8s_version: string (default: 1.31) pod_cidr: string (default: 10.244.0.0/16) key_name: string (required) image_name: string (default: Ubuntu-24.04) external_network: string (default: PublicStatic) private_cidr: string (default: 192.168.70.0/24) dns_nameservers: list(string) (required) ### Live RTMP/SRT ingest and restream Format: opentofu | Services: compute, network, storage/object | Time: 30 minutes Parameters: key_name: string (required) ingest_flavor: string (default: c2a.large) image_name: string (default: Ubuntu-24.04) external_network: string (default: PublicStatic) private_cidr: string (default: 192.168.75.0/24) instance_name: string (default: live-ingest) ingest_server: string (default: nginx-rtmp) encoder_cidr: string (default: 0.0.0.0/0) admin_cidr: string (default: 0.0.0.0/0) srt_port: number (default: 10080) application_name: string (default: live) stream_key: string (default: ) restream_targets: list(string) (required) enable_hls_recording: bool (required) hls_bucket_name: string (default: ) s3_access_key: string (default: ) s3_secret_key: string (default: ) s3_endpoint: string (default: https://object.us-east-1.rumble.cloud) s3_region: string (default: us-east-1) ### Mattermost team chat Format: opentofu | Services: compute, network, storage/block | Time: 25 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.medium) image_name: string (default: Ubuntu-24.04) app_name: string (default: mattermost) volume_size: number (default: 20) external_network: string (default: PublicStatic) private_cidr: string (default: 10.55.0.0/24) app_allowed_cidr: string (default: 10.55.0.0/24) ### Metabase BI dashboards Format: opentofu | Services: compute, network, storage/block | Time: 25 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.small) image_name: string (default: Ubuntu-24.04) app_name: string (default: metabase) volume_size: number (default: 20) external_network: string (default: PublicStatic) private_cidr: string (default: 10.40.0.0/24) editor_allowed_cidr: string (default: 10.40.0.0/24) db_type: string (default: embedded) postgres_host: \"postgres\" (for example the private IP of a self-managed-postgres instance). Ignored when db_type is embedded." type = string (default: ) postgres_db: \"postgres\". Ignored when db_type is embedded." type = string (default: metabase) postgres_user: \"postgres\". The password is never set here: add MB_DB_PASS to /opt/metabase/.env on the instance and restart. Ignored when db_type is embedded." type = string (default: metabase) ### MinIO + Apache Iceberg lakehouse Format: opentofu | Services: compute, network, storage/block | Time: 25 minutes Parameters: key_name: string (required) flavor_name: string (default: m2a.large) image_name: string (default: Ubuntu-24.04) app_name: string (default: lakehouse) volume_size: number (default: 50) external_network: string (default: PublicStatic) private_cidr: string (default: 10.52.0.0/24) api_allowed_cidr: string (default: 10.52.0.0/24) warehouse_bucket: string (default: warehouse) ### MLflow experiment tracking Format: opentofu | Services: compute, network, storage/block, storage/object | Time: 25 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.small) image_name: string (default: Ubuntu-24.04) app_name: string (default: mlflow) volume_size: number (default: 20) external_network: string (default: PublicStatic) private_cidr: string (default: 10.40.0.0/24) ui_allowed_cidr: string (default: 10.40.0.0/24) postgres_host: string (required) postgres_db: string (default: mlflow) postgres_user: string (default: mlflow) artifact_bucket: string (required) artifact_prefix: string (default: mlflow) s3_endpoint: string (required) ### Monitoring Stack (Prometheus + Grafana) Format: opentofu | Services: compute, network, storage/block | Time: 30 minutes Parameters: key_name: string (required) prometheus_flavor: string (default: m2a.large) grafana_flavor: string (default: m2a.large) retention_days: number (default: 30) prometheus_volume_size: number (default: 100) grafana_volume_size: number (default: 20) scrape_targets: list(string) (required) image_name: string (default: Ubuntu-24.04) external_network: string (default: PublicStatic) private_cidr: string (default: 192.168.90.0/24) admin_cidr: string (default: 0.0.0.0/0) grafana_admin_password: string sensitive = true (required) ### MySQL/MariaDB Database Format: opentofu | Services: compute, network, storage/block | Time: 25 minutes Parameters: allowed_cidrs: list(string) (required) key_name: string (required) db_flavor: string (default: m2a.large) volume_size: number (default: 50) db_engine_package: string (default: mariadb-server) backup_schedule: string (default: 0 2 * * *) image_name: string (default: Ubuntu-24.04) external_network: string (default: PublicStatic) private_cidr: string (default: 192.168.50.0/24) instance_name: string (default: mysql) db_name: string (default: appdb) db_user: string (default: appuser) db_password: string sensitive = true (required) ### n8n workflow automation Format: opentofu | Services: compute, network, storage/block | Time: 20 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.small) image_name: string (default: Ubuntu-24.04) app_name: string (default: n8n) volume_size: number (default: 20) external_network: string (default: PublicStatic) private_cidr: string (default: 10.40.0.0/24) editor_allowed_cidr: string (default: 10.40.0.0/24) db_type: string (default: sqlite) postgres_host: \"postgres\" (for example the private IP of a self-managed-postgres instance). Ignored when db_type is sqlite." type = string (default: ) postgres_db: \"postgres\". Ignored when db_type is sqlite." type = string (default: n8n) postgres_user: \"postgres\". The password is never set here: add DB_POSTGRESDB_PASSWORD to /opt/n8n/.env on the instance and restart. Ignored when db_type is sqlite." type = string (default: n8n) ### Next.js App on Compute Format: opentofu | Services: compute, network | Time: 20 minutes Parameters: flavor_name: string (default: s1a.small) image_name: string (default: Ubuntu-24.04) key_name: string (required) app_name: string (default: nextjs-app) container_image: string (default: registry.example.com/nextjs-app:latest) container_env: map(string) (required) app_port: number (default: 3000) host_port: number (default: 80) domain: string (default: ) external_network: string (default: PublicStatic) private_cidr: string (default: 10.10.10.0/24) ### Nextcloud files and collaboration Format: opentofu | Services: compute, network, storage/block | Time: 25 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.medium) image_name: string (default: Ubuntu-24.04) app_name: string (default: nextcloud) volume_size: number (default: 40) external_network: string (default: PublicStatic) private_cidr: string (default: 10.57.0.0/24) app_allowed_cidr: string (default: 10.57.0.0/24) ### Outline team knowledge base Format: opentofu | Services: compute, network, storage/block | Time: 30 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.medium) image_name: string (default: Ubuntu-24.04) app_name: string (default: outline) volume_size: number (default: 20) external_network: string (default: PublicStatic) private_cidr: string (default: 10.46.0.0/24) app_allowed_cidr: string (default: 10.46.0.0/24) file_storage: string (default: local) s3_endpoint: string (default: ) s3_region: string (default: us-east-1) s3_bucket: string (default: ) ### Plane project management Format: opentofu | Services: compute, network, storage/block | Time: 30 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.large) image_name: string (default: Ubuntu-24.04) app_name: string (default: plane) volume_size: number (default: 40) external_network: string (default: PublicStatic) private_cidr: string (default: 10.51.0.0/24) app_allowed_cidr: string (default: 10.51.0.0/24) ### Private Network + VPN Format: opentofu | Services: network, compute | Time: 30 minutes Parameters: vpn_protocol: string (default: wireguard) private_cidr: string (default: 10.0.0.0/24) remote_cidr: string (required) remote_endpoint: string (required) remote_wireguard_public_key: string sensitive = true (required) gateway_flavor: string (default: s1a.small) key_name: string (required) image_name: string (default: Ubuntu-24.04) external_network: string (default: PublicStatic) vpn_port: number (default: 51820) ### Provision and configure with OpenTofu plus Ansible Format: ansible-opentofu | Services: compute, network | Time: 30 minutes ### Qdrant vector database Format: opentofu | Services: compute, network, storage/block | Time: 20 minutes Parameters: key_name: string (required) qdrant_api_key: string sensitive = true (required) qdrant_image: string (default: qdrant/qdrant:v1.12.4) flavor_name: string (default: m2a.large) image_name: string (default: Ubuntu-24.04) app_name: string (default: qdrant) http_port: number (default: 6333) grpc_port: number (default: 6334) volume_size: number (default: 10) external_network: string (default: PublicStatic) private_cidr: string (default: 10.30.0.0/24) ### Redis / Valkey cache Format: opentofu | Services: compute, network, storage/block | Time: 20 minutes Parameters: key_name: string (required) redis_password: string sensitive = true (required) redis_image: string (default: valkey/valkey:8-alpine) server_command: string (default: valkey-server) flavor_name: string (default: s1a.small) image_name: string (default: Ubuntu-24.04) app_name: string (default: redis-cache) redis_port: number (default: 6379) persistence_enabled: bool (required) volume_size: number (default: 10) external_network: string (default: PublicStatic) private_cidr: string (default: 10.20.0.0/24) ### Redpanda Kafka-API streaming Format: opentofu | Services: compute, network, storage/block | Time: 25 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.small) image_name: string (default: Ubuntu-24.04) app_name: string (default: redpanda) volume_size: number (default: 50) external_network: string (default: PublicStatic) private_cidr: string (default: 10.60.0.0/24) client_allowed_cidr: string (default: 10.60.0.0/24) enable_console: bool (required) ### S3 Storage with ACLs Format: opentofu | Services: storage/object | Time: 10 minutes Parameters: bucket_name: string (required) access_policy: string (default: private) cors_origins: list(string) (required) versioning: bool (required) s3_endpoint: string (default: https://object.us-east-1.rumble.cloud) s3_region: string (default: us-east-1) ### Selenium Grid testing Format: opentofu | Services: compute, network | Time: 15 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.large) image_name: string (default: Ubuntu-24.04) app_name: string (default: selenium-grid) external_network: string (default: PublicStatic) private_cidr: string (default: 10.54.0.0/24) grid_allowed_cidr: string (default: 10.54.0.0/24) selenium_version: string (default: 4.45.0-20260606) ### Self-hosted error telemetry (GlitchTip) Format: opentofu | Services: compute, network, storage/block | Time: 30 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.medium) image_name: string (default: Ubuntu-24.04) app_name: string (default: glitchtip) volume_size: number (default: 20) external_network: string (default: PublicStatic) private_cidr: string (default: 10.49.0.0/24) app_allowed_cidr: string (default: 10.49.0.0/24) ### Self-hosted OIDC identity provider (Keycloak) Format: opentofu | Services: compute, network, storage/block | Time: 30 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.medium) image_name: string (default: Ubuntu-24.04) app_name: string (default: auth-oidc) volume_size: number (default: 20) external_network: string (default: PublicStatic) private_cidr: string (default: 10.48.0.0/24) app_allowed_cidr: string (default: 10.48.0.0/24) ### Self-Managed PostgreSQL Format: opentofu | Services: compute, network, storage/block | Time: 25 minutes Parameters: allowed_cidrs: list(string) (required) key_name: string (required) db_flavor: string (default: m2a.xlarge) volume_size: number (default: 50) pg_version: string (default: 16) backup_schedule: string (default: 0 2 * * *) wal_archive_bucket: string (required) image_name: string (default: Ubuntu-24.04) external_network: string (default: PublicStatic) private_cidr: string (default: 192.168.40.0/24) instance_name: string (default: postgres) db_name: string (default: appdb) db_user: string (default: appuser) db_password: string sensitive = true (required) ### Simple VM with Floating IP Format: opentofu | Services: compute, network | Time: 10 minutes Parameters: flavor_name: string (default: s1a.small) image_name: string (default: Ubuntu-24.04) key_name: string (required) instance_name: string (default: simple-vm) external_network: string (default: PublicEphemeral) private_cidr: string (default: 10.10.10.0/24) ### Streamlit data-app host Format: opentofu | Services: compute, network, storage/block | Time: 20 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.small) image_name: string (default: Ubuntu-24.04) app_name: string (default: streamlit) volume_size: number (default: 20) external_network: string (default: PublicStatic) private_cidr: string (default: 10.43.0.0/24) app_allowed_cidr: string (default: 10.43.0.0/24) ### Supabase self-host stack Format: opentofu | Services: compute, network, storage/block | Time: 30 minutes Parameters: key_name: string (required) flavor_name: string (default: m2a.xlarge) image_name: string (default: Ubuntu-24.04) app_name: string (default: supabase) volume_size: number (default: 40) external_network: string (default: PublicStatic) private_cidr: string (default: 10.47.0.0/24) api_allowed_cidr: string (default: 10.47.0.0/24) ### Three-Tier Application Format: opentofu | Services: compute, network, storage/block | Time: 30 minutes Parameters: key_name: string (required) web_count: number (default: 2) app_count: number (default: 2) db_count: number (default: 1) web_flavor: string (default: s1a.small) app_flavor: string (default: m2a.large) db_flavor: string (default: m2a.xlarge) image_name: string (default: Ubuntu-24.04) external_network: string (default: PublicStatic) web_cidr: string (default: 192.168.60.0/24) app_cidr: string (default: 192.168.61.0/24) db_cidr: string (default: 192.168.62.0/24) db_volume_size: number (default: 50) ### Trino federated query engine Format: opentofu | Services: compute, network, storage/block | Time: 30 minutes Parameters: key_name: string (required) flavor_name: string (default: m2a.xlarge) image_name: string (default: Ubuntu-24.04) app_name: string (default: trino) volume_size: number (default: 80) external_network: string (default: PublicStatic) private_cidr: string (default: 10.50.0.0/24) ui_allowed_cidr: string (default: 10.50.0.0/24) worker_count: number (default: 1) postgres_host: string (default: ) postgres_port: number (default: 5432) postgres_database: string (default: analytics) postgres_user: string (default: analytics) clickhouse_host: string (default: ) clickhouse_port: number (default: 8123) iceberg_rest_uri: string (default: ) iceberg_warehouse: string (default: s3://lake/warehouse) s3_endpoint: string (default: ) s3_region: string (default: us-east-1) ### Umami self-hosted analytics Format: opentofu | Services: compute, network, storage/block | Time: 20 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.medium) image_name: string (default: Ubuntu-24.04) app_name: string (default: umami) volume_size: number (default: 20) external_network: string (default: PublicStatic) private_cidr: string (default: 10.44.0.0/24) dashboard_allowed_cidr: string (default: 10.44.0.0/24) db_mode: string (default: bundled) postgres_host: string (default: ) postgres_db: string (default: umami) postgres_user: string (default: umami) ### Unleash feature flags Format: opentofu | Services: compute, network, storage/block | Time: 20 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.medium) image_name: string (default: Ubuntu-24.04) app_name: string (default: unleash) volume_size: number (default: 15) external_network: string (default: PublicStatic) private_cidr: string (default: 10.52.0.0/24) app_allowed_cidr: string (default: 10.52.0.0/24) ### Uptime Kuma status and monitoring Format: opentofu | Services: compute, network, storage/block | Time: 15 minutes Parameters: key_name: string (required) flavor_name: string (default: s1a.small) image_name: string (default: Ubuntu-24.04) app_name: string (default: uptime-kuma) volume_size: number (default: 10) external_network: string (default: PublicStatic) private_cidr: string (default: 10.42.0.0/24) dashboard_allowed_cidr: string (default: 10.42.0.0/24) ### WordPress + MySQL on Compute Format: opentofu | Services: compute, network, storage/block | Time: 20 minutes Parameters: wp_domain: string (required) wp_flavor: string (default: s1a.small) db_flavor: string (default: m2a.large) db_volume_size: number (default: 20) image_name: string (default: Ubuntu-24.04) external_network: string (default: PublicStatic) key_name: string (required) private_cidr: string (default: 192.168.10.0/24) db_name: string (default: wordpress) db_user: string (default: wordpress) db_password: string sensitive = true (required) ## Network Models Quake AI projects include two pre-built networks: - PublicEphemeral: Direct internet access via shared external network. Instances get a public IP automatically. For testing and development only — instances are directly exposed with no tenant isolation. - PublicStatic: Production use. Requires creating a private network + router + floating IP. Instances are isolated by default; only floating IP ports are reachable from the internet. Decision: Use PublicEphemeral for quick testing and tutorials. Use PublicStatic + private network for anything production or internet-facing with controlled access. ## Platform Constraints - Volume type: Flash_Premium (NVMe SSD) — single type, no volume type selection needed in IaC - Authorization roles: admin, member, reader — no IAM policies or custom roles - Regions: us-west-1, us-east-1, us-east-2 - Auth for automation: application credentials (not username/password) — generate via Console > Identity > App Credentials - OpenStack release: Antelope (2023.1), Nova microversion 2.93 - IaC tooling: OpenTofu recommended over Terraform; identical HCL syntax, same OpenStack provider - Image naming: exact match required (e.g. "Ubuntu 24.04", not "ubuntu-24") - Security groups: must be explicitly created and attached — no default allows inbound traffic