Guide
1
2
Create the cluster
This guide uses standard settings with the EBS CSI driver.
- Navigate to Elastic Kubernetes Service (EKS) and create a new cluster
- For Cluster service role, create a new IAM role with a descriptive name like
onyx-eks-cluster-role - For Kubernetes version, select a version with standard support
- Choose Standard upgrade policy
- Add the Amazon EBS CSI Driver add-on. Onyx uses persistent volumes for PostgreSQL, OpenSearch, and the object store
- Keep the other default add-ons enabled

3
Add nodes
Once the cluster is active, add worker nodes where Onyx services run.
- On the Cluster page, select the Compute tab and click Add node group
- For Node IAM role, select an existing role or create a new one
The role needs the
AmazonEBSCSIDriverPolicy so the cluster can create persistent volumes. If you create a role,
add this policy in addition to the default policies.- Replace the Instance types with
m7i.2xlargemachines (orm7i.4xlargefor more than 200 users or more than 100k documents) - Set Volume size in the 200GB - 800GB range depending on your document count
- For most setups, set the Desired size and Minimum size to 1. You can increase these later to scale up
4
Grant cluster access
Your AWS identity needs admin access to the cluster.
- On the cluster page, select Access and then Create access entry
- In IAM principal, select the IAM role or user you use with the AWS CLI
- For Policy name, select
AmazonEKSClusterAdminPolicy
Prefer an IAM role (for example, through AWS SSO) over a long-lived IAM user with access keys.
5
Fetch kubeconfig
Log in to the AWS CLI:Configure your kubeconfig to connect to the cluster. Fill in the
region-code and cluster-name:Reference AWS EKS kubeconfig docs.
6
Set a default storage class
The Onyx chart creates persistent volume claims without a storage class. The cluster must have a default.
Check for one:If no class is marked
(default), mark gp2 or gp3 as the default:7
Install Onyx
The Onyx Helm chart packages all the required services (API, web, PostgreSQL, Redis, OpenSearch, object store)
into a single release. By default, the chart creates persistent volumes for the stateful services.Add the Onyx Helm repository:Create a Create a dedicated namespace and install Onyx:
values.yaml with the object store credentials. The chart refuses to install with empty keys:values.yaml
8
Verify the installation
Running state before you open Onyx.The API server is often the last pod to become ready. Follow its logs:9
Access Onyx
The chart creates a Point your DNS record at the Then open http://localhost:8080. The first user to sign up becomes the admin.
LoadBalancer service named onyx-nginx. Get its hostname:EXTERNAL-IP hostname and set WEB_DOMAIN in values.yaml under configMap.For local testing, port-forward instead:Upgrading
To upgrade Onyx, update the Helm repository and reuse your values:Chart versions differ from Onyx release versions.
Run
helm search repo onyx --versions to see which Onyx version (APP VERSION) each chart ships.Uninstalling
To remove the Onyx services:Next Steps
Configure Authentication
Set up authentication for your Onyx deployment with OAuth, OIDC, or SAML.
More Onyx Configuration Options
Learn about all available configuration options for your Onyx deployment.