Overview
A blueprint is a pre-configured workspace template. When a builder clicks “Create” in the AI Builder Portal, they are creating a private copy of a blueprint - pre-loaded with the right tools, the right database connections, and the right credentials for their role. They don’t configure anything. They just pick a template and start building. From a technical perspective, each blueprint maps to a Qovery project and environment. When a builder creates a workspace, the system clones that environment into a new Qovery project scoped to that builder. The blueprint is the master template; each workspace is an isolated copy. As an admin, you decide what each blueprint contains, who can access it, and what it can connect to. This is where governance happens - invisibly to the builder, but completely under your control. The blueprint itself is a standard Qovery environment, managed through the Qovery Console, CLI, or Terraform as usual.Registering a Blueprint
Open the Admin Panel
Click Register
Select the Qovery Project
Choose the Environment
Set Display Name
Save
Blueprint Requirements
A good blueprint environment should include everything a builder needs to be productive from the moment their workspace is ready. Required:- At least one service or container (typically a workspace image with an IDE like VS Code Server)
- Development tools pre-installed - Claude Code, OpenCode, Git, language runtimes (Node.js, Python, etc.)
- Environment variables configured - API keys, database credentials, service URLs
- Databases and backing services - PostgreSQL, Redis, or any other services your builders need
- TTL auto-stop job - A lifecycle job that automatically stops idle environments to save costs
Updating a Blueprint
Changes you make to the source Qovery project and environment (adding services, updating environment variables, changing container images) are reflected in new workspaces created from the blueprint.- Image updates - Admins or builders can restart a workspace to pull the latest container image.
- Structural changes - If the blueprint structure has changed significantly (new services added, environment variables renamed), you may need to use the Upgrade action from the workspace management page to redeploy with the latest blueprint configuration.
Removing a Blueprint
To unregister a blueprint, navigate to Admin > Blueprints, select the blueprint, and click Remove. If you want to permanently clean up, delete the associated workspaces from the workspace management page before or after removing the blueprint.Create Blueprint from Template
Instead of registering an existing Qovery environment as a blueprint, you can create a new blueprint directly from a pre-built template - no pre-existing environment required.Open the Template Gallery
Pick a Template
Developers
Data
Marketing
Sales
Finance
Other
Configure the Blueprint
- Blueprint name - Display name shown to builders in the catalog
- Target cluster - The Kubernetes cluster where workspaces will run
- Resource allocation - CPU, RAM, and storage limits for the workspace
- Docker image repository - Container registry and image for the workspace
- Project repository URL (optional) - Git repository to auto-clone into new workspaces
Create
Blueprint Lifecycle
Each blueprint has an admin state that controls its visibility and availability in the catalog.Primary Service
By default, the portal connects terminal sessions and live preview to the first service in the blueprint environment. If your blueprint has multiple services, you can specify which service is the primary service - the one used for shell connections and preview. Navigate to Admin > Blueprints > [Blueprint] > General and select the primary service from the dropdown. The dropdown lists all services in the blueprint’s Qovery environment.Workspace Project Mode
Choose how the portal organizes Qovery projects when builders create workspaces:Naming Templates
Customize how workspace projects and environments are named in Qovery using template variables:rde-{user}-{blueprint} for a user alice@company.com creating from “Frontend Starter” would produce rde-alice-frontend-starter.
Target Cluster
If your organization has multiple Kubernetes clusters, you can specify which cluster should be used for workspaces created from a specific blueprint. Navigate to Admin > Blueprints > [Blueprint] > General and select the target cluster from the dropdown. If no cluster is specified, the portal uses the default cluster. This is useful for:- Data residency - Route workspaces to clusters in specific regions
- Resource isolation - Separate development workloads across clusters
- Specialized hardware - Use different node types or GPU-enabled clusters for specific blueprint use cases
Managing Blueprints with Terraform
Since blueprints are standard Qovery projects and environments, you can define and manage them entirely with the Qovery Terraform Provider. This lets you version-control your blueprint infrastructure, automate provisioning, and ensure consistency across environments.Example: Blueprint with the Official Workspace Template
Terraform Provider Overview
Provider Registry
Official Workspace Template
Qovery provides an official workspace template image you can use as the base container for your blueprints. It is designed for both technical and non-technical builders and comes pre-configured with everything needed for a productive development environment.What’s Included
code-server
AI Assistants
Language Runtimes
Dev CLIs
Auto Dev Server
Live Preview
Using the Template
To use this template as your blueprint’s workspace container:- Create a Qovery project and environment for your blueprint
- Add a container service using the image from the template repository
- Configure the environment variables listed below
- Register the environment as a blueprint in the AI Builder Portal
Using the Install Script
If you already have your own Dockerfile and base image, you can add all Qovery RDE tools with a single line instead of changing your base image or forking the template repository:apt-get). It must run as root inside a RUN instruction.Customizing with .config.rde.qovery.yml
To control which components are installed, place a .config.rde.qovery.yml file in your Docker build context. If no config file is present, everything is installed with sensible defaults.
Each value can be:
true- install with default versionfalse- skip installation- A version string (e.g.,
"22","1.24.3") - install with a specific version
RDE_CONFIG environment variable:
Available Components
Integrity & Reproducibility
All binary downloads (Go, GitHub CLI, Zellij, ttyd, RTK) are SHA256-verified - the script checks each downloaded artifact against a pinned checksum and aborts the build if it doesn’t match. Node.js is installed via a GPG-verified apt source instead of piping a setup script into bash.Using custom versions
When you override the default version of a binary tool, you must also provide SHA256 checksums for each architecture you target. The config key pattern is:<tool> is one of go, gh, zellij, ttyd, or rtk, and <arch> is amd64 or arm64.
For example, to pin GitHub CLI to v2.78.0 and Go to v1.25.0:
checksums.txt file with every release at https://github.com/cli/cli/releases.Vendoring the install script
For production deployments where you need full control over what runs during your Docker build, vendor the install script into your repository instead of fetching it at build time:curl | bash from Qovery-controlled endpoints (get.qovery.com and skill.qovery.com). Version pinning for these components is planned.Custom workspace user
By default, the install script creates acoder user and installs everything under /home/coder. To use a different user, set rde_user in your config or the RDE_USER environment variable:
node in node:22, ubuntu in ubuntu:24.04), the script will use it as-is and detect its home directory automatically. If it doesn’t exist, the script creates it with /home/<user>.
Environment Variables
Configure these environment variables on the workspace container service in your Qovery blueprint environment:How the Startup Works
When a workspace container starts, the template automatically:Clone the repository
GIT_REPO_URL is configured, the repo is cloned and the specified branch is checked out. On subsequent restarts, the workspace pulls the latest changes instead of re-cloning.Install dependencies
npm install for Node.js, pip install for Python, bundle install for Ruby, go mod download for Go.Start the dev server
Open the IDE
Supported Project Types
The template auto-detects and handles the following project types:AI Skills
The template includes pre-configured AI skills for both Claude Code and OpenCode that:- Adapt to the builder’s experience level - On first interaction, the AI asks the builder how comfortable they are with coding and adjusts its communication style accordingly (no jargon for beginners, normal technical language for experienced developers)
- Take action directly - The AI creates files, installs packages, and fixes errors autonomously instead of instructing the builder to run commands
- Use a sensible default stack - When starting from scratch, the AI defaults to Vite + React + Tailwind CSS
- Support deployment - When a builder says “put it online” or “deploy”, the AI uses Qovery skills to deploy the application
Customization
Use the install script with your own Dockerfile
Use the install script with your own Dockerfile
RUN curl -fsSL https://rde.qovery.com/install.sh | bash to your existing Dockerfile. Customize what gets installed with a .config.rde.qovery.yml file - disable runtimes you don’t need, pin specific versions, or skip code-server entirely. See Using the Install Script for details.Fork and add your own tools
Fork and add your own tools
Customize AI behavior
Customize AI behavior
resources/CLAUDE.md and resources/SKILL.md) control how Claude Code and OpenCode interact with builders. Edit these files to match your organization’s coding conventions, preferred tech stack, or domain-specific instructions.Add VS Code extensions
Add VS Code extensions
code-server --install-extension <extension-id>, or list them in the extensions key of your .config.rde.qovery.yml file. This is useful for language-specific extensions, linters, or your organization’s internal extensions.Pre-configure for a specific stack
Pre-configure for a specific stack
GIT_REPO_URL to a starter template repo and configure the environment variables accordingly. Builders get a ready-to-code project from the moment their workspace starts.Best Practices
Keep blueprints lean and focused
Keep blueprints lean and focused
Test blueprints before making them available
Test blueprints before making them available
Use descriptive names for builders
Use descriptive names for builders
Version your blueprint container images
Version your blueprint container images
workspace:v2.1) rather than :latest for production blueprints. This gives you control over when updates roll out and makes it easy to roll back if an update causes issues.Configure auto-stop TTL policies
Configure auto-stop TTL policies