For operators. The Deployment section is intended for the person (DevOps, platform engineer, or self-hoster) who installs and runs the Oxy server. If you are an end user looking to query data or build agents, start with the Quickstart or Getting Started with Agents instead.
Looking for local development setup? See the quickstart
guide to get started with
oxy init and oxy start.Deployment Paths
There are several approaches to deploying Oxy:- Traditional Linux Setup - Follow the step-by-step guide below to provision a machine, install dependencies, and configure each component manually.
- Docker Deployment - Use our Docker image for a containerized deployment that simplifies setup and maintenance. See the Docker deployment guide for details.
- Kubernetes Deployment - Deploy Oxy on Kubernetes clusters using our official Helm charts or raw YAML manifests. Choose from:
- oxy-app Helm Chart - Standard deployment using
oxy servewith an external PostgreSQL database. Recommended for most Kubernetes deployments. - oxy-start Helm Chart - Self-contained deployment using
oxy startwith Docker-in-Docker. No external database required — ideal for single-tenant instances. - Raw YAML - For advanced users who need full control over Kubernetes resources.
- GitOps with ArgoCD - Manage Helm deployments declaratively for automated sync and drift detection.
- oxy-app Helm Chart - Standard deployment using
- Multi-workspace Mode - Deploy Oxy as a multi-tenant platform using
oxy serve(the default). Workspaces are imported from GitHub or created via the UI and managed centrally. Use--localfor single-workspace deployments where the server serves one fixed directory. - Hands-on Guides - For practical, ready-to-use deployment recipes, check our hands-on guides section which includes:
- Google Cloud Platform (GCP) - Deploy Oxy on Google Cloud using our dedicated GCP deployment guide.
Deployment Overview
Deployment Request Flow Diagram
oxy start vs oxy serve
These are the two commands you’ll use to run Oxy. Choosing the right one depends on where you’re running it.
oxy start | oxy serve --local | oxy serve | |
|---|---|---|---|
| Use when | Running on your local machine | Deploying to a remote server (single workspace) | Running a multi-workspace cloud deployment |
| PostgreSQL | Auto-started in Docker — no setup needed | Auto-managed embedded instance | You provide OXY_DATABASE_URL |
| Workspaces | One project (current directory) | One project (current directory) | Multiple — imported from GitHub via UI |
| GitHub App | Not required | Not required | Required for workspace import |
| Requires Docker | Yes | No | No |
oxy start — for local machines
oxy start is the easiest way to run Oxy on your laptop or workstation. It spins up PostgreSQL in Docker automatically so you never have to configure a database:
Ctrl+C. Requires a Docker-compatible container engine.
oxy serve --local — for remote servers (single workspace)
When deploying to a VM or container on a remote server, use oxy serve --local. It serves one fixed workspace directory and manages an embedded PostgreSQL instance on disk — no Docker required:
oxy serve — for multi-workspace cloud mode
oxy serve (without --local) runs Oxy as a multi-tenant platform where users import repositories from GitHub and manage multiple workspaces through the UI. Requires an external PostgreSQL database and a GitHub App:
Data Persistence
For production deployments, ensure your data persistence strategy matches your reliability requirements:- Local machine (
oxy start): PostgreSQL runs in Docker, data stored in theoxy-postgres-dataDocker volume - Remote server (
oxy serve --local): Embedded PostgreSQL stored inOXY_STATE_DIR(default:~/.local/share/oxy/) - Cloud mode (
oxy serve): You manage an external PostgreSQL — use a managed service (RDS, Cloud SQL, Supabase) with automated backups
Deployment Steps
Follow these steps to deploy Oxy on your cloud environment:1. Create Machine
Provision and set up your server with the necessary requirements
2. Install Oxy CLI
Install and configure the Oxy CLI on your server
3. Set Up Workspace & Repository
Set up your Oxy workspace and configure your repository
4. Configure Environment
Set up environment variables and secrets management
Docker Deployment
Deploy Oxy using Docker containers for simplified setup and management
Kubernetes (Helm)
Deploy Oxy on Kubernetes using the oxy-app or oxy-start Helm chart
Cloud Mode
Multi-tenant deployment with GitHub-synced projects and workspace management
Kubernetes (Raw YAML)
Deploy Oxy on Kubernetes using raw YAML manifests for full control
GCP Deployment
Step-by-step guide for deploying Oxy on Google Cloud Platform
Troubleshooting
Quick One-Time Script
If you prefer to set up everything with a single script, you can use the following bash script that automates the entire deployment process. Customize the variables at the beginning to fit your requirements:- Save it to a file (e.g.,
deploy-oxy.sh) - Make it executable:
chmod +x deploy-oxy.shThis script is provided as a starting point and may need adjustments for your specific environment. Always review scripts before running them on your server. - Edit the configuration variables at the beginning of the script
- Run the script:
./deploy-oxy.sh