Skip to main content

Installation Guide

CodeXray Observability runs the same way you want it to — fully managed in our cloud, or self-hosted in your own infrastructure. The platform, the agents, and the data model are identical across deployments; the only thing that changes is who runs the backend.


Pick the Right Option for You​

SaaS (Cloud-Hosted)On-Prem — Docker ComposeOn-Prem — Kubernetes
Best forTeams that want zero infrastructure overheadPOCs, design partners, small evaluationsProduction workloads at any scale
Time to first telemetry~5 minutes (self-onboarding)~10 minutes~30 minutes
Who runs the backendCodeXray (us)YouYou
Where your data livesOur managed ClickHouse — pick EU or NA regionYour hardwareYour cluster
Pricing modelPer-GB ingestionNode-based licensingNode-based licensing
Suitable for production✓Up to 10 nodes / 50 GB-day✓ at any scale
Compliance / data residencyEU and NA regions; reach out for othersFull controlFull control
Hybrid is just SaaS with self-managed agents

"Hybrid" simply means agents run inside your infrastructure (no data leaves your network until the agent's outbound POST) and report to our SaaS collector. There's no separate hybrid install — pick SaaS below and install agents the same way you would for on-prem. The agent's outbound TCP to the SaaS collector is the only thing that crosses your boundary.


Option A — SaaS (Cloud-Hosted)​

The fastest path to seeing CodeXray on your real telemetry — no servers to provision, no databases to manage, no upgrades to schedule. You sign up, create a project, and point your agents at the SaaS collector. We handle the rest.

Pick a region​

CodeXray SaaS runs in two regions today. Pick the one closest to your infrastructure (or the one that matches your data-residency requirements).

RegionURLBest for
Global (default)https://saas.codexray.ioTeams outside North America; default for new sign-ups
North Americahttps://saas-na.codexray.ioTeams whose infrastructure is primarily in NA, or who need US data residency
Pick one and stick with it

Tenants are not portable between regions. Choosing the wrong region just means a re-sign-up; nothing is lost, but agents would need to be re-pointed at the new URL. If you're unsure, the global URL is the safe default.

Self-Onboarding — From Credentials to First Telemetry​

CodeXray SaaS is admin-provisioned, then self-served. Once your tenant has been created and you have admin credentials, you can stand up projects, invite teammates, and start ingesting data — without anyone from our team in the loop.

Step 1 — Sign up for free​

Open https://www.codexray.io/signup and fill in the Sign Up for Free form:

FieldWhat it is
Full nameYour name — used for the admin user on the tenant we provision
Work emailThe address sign-in credentials and onboarding emails are delivered to
CompanyBecomes the default tenant name
Verify you're humanQuick captcha

Hit Sign Up. Our team will follow up within 24 hours with your sign-in URL (one of the two region URLs above) and the initial admin credentials. If you don't see the email, check your spam folder.

What signing up actually gets you
  • Quick onboarding — up and running in under a day from form submission to first telemetry
  • Enterprise-grade security — SOC 2 ready; your telemetry stays in the region you pick and never crosses tenant boundaries
  • Dedicated specialist — a real human walks you through setup, picks the right region for you, and answers integration questions

By signing up you agree to the Terms and Privacy Policy linked at the bottom of the form.

Step 2 — Sign in​

Open your region URL (https://saas.codexray.io for Global or https://saas-na.codexray.io for North America) and sign in with the credentials you received.

CodeXray sign-in screen — Email/Username + Password

If your organisation already has SSO set up, the page will show a "Sign in with SSO" option that redirects to your identity provider. See Single Sign-On for the SSO configuration story.

Step 3 — Change the admin password​

Open the user-profile area in the top-right and pick Change Password. CodeXray hashes passwords with bcrypt and never stores them in plaintext — see Changing Your Credentials for the full flow.

Change credentials — password update flow

Step 4 — Confirm your tenant and pick a project​

The top navbar shows two selectors — Tenant and Project. Your tenant is already set; a default project is created for you. Most teams keep the default project for production, then create one project per additional environment (staging, qa).

Tenant and project selector in the top navbar

See Multi-Tenancy for how tenants and projects partition your data.

Step 5 — Copy your project API key​

  1. Switch to the project you want to ingest into.
  2. Open Project Settings → API Keys.
  3. The default project API key is generated at project creation — click Copy to put it on your clipboard.

The key is a signed JWT that carries the tenant_id and project_id — so telemetry routes itself automatically once an agent has the key. You can rotate or issue additional keys any time from the same screen.

Step 6 — Point your first agent at the SaaS collector​

Every CodeXray agent takes two pieces of configuration: the collector endpoint and the API key. For SaaS, the collector endpoint is your region URL.

AgentHelm install (recommended)Manifest install
Node AgentSee Node Agent — Helm — set nodeAgent.collector_endpoint='https://saas.codexray.io' and nodeAgent.apiKey='<your-key>'See Node Agent — Manifest
Cluster AgentSee Cluster Agent — Helm — set clusterAgent.codexray_url='https://saas.codexray.io' and clusterAgent.apiKey='<your-key>'See Cluster Agent — Manifest
Database AgentSee Database Agent—
Windows / .NET AgentsSee Windows · .NET—

Substitute https://saas-na.codexray.io if you signed up in the North America region.

Step 7 — Watch the data flow​

Within a couple of minutes you'll see:

  • The Nodes view populate with hosts the Node Agent is running on
  • The Applications view list the services as they're detected
  • The Topology view start drawing the service map from real TCP traffic

If nothing appears after 5 minutes, see Verifying It's Working on the Node Agent page — the two most common causes are firewall egress to the SaaS URL, or an API key from a different project.

Step 8 — Invite your team​

The admin you signed in as can create additional users and assign roles from the user-management screen. See Role-Based Access Control for the full flow — adding users, assigning roles, and mapping SSO groups to CodeXray roles automatically.

What's included in SaaS​

  • Fully managed CodeXray platform — ClickHouse, collector, query, UI, and alerting engine all run on our infrastructure
  • Automatic upgrades — you always get the latest features and fixes
  • Built-in alerts and notification channels — Slack, Webhook, PagerDuty (see Alerts)
  • 24/7 monitoring of the SaaS infrastructure itself by our team

Pricing is per-GB ingestion — there are no per-span surprises and no agent-count charges. Talk to us at hello@codexray.io for volume pricing.


Option B — On-Prem · Docker Compose (POC / Evaluation)​

The fastest way to see CodeXray running on your own infrastructure. Everything — backend, storage, and UI — comes up on a single host with one command. Recommended for proof-of-concept and design-partner pilots (up to 10 nodes, 50 GB/day ingest).

Prerequisites​

  • A single VM or laptop with Docker 24+ and Docker Compose v2
  • Minimum 4 vCPU · 16 GB RAM · 100 GB SSD
  • Linux preferred (Docker Desktop on macOS/Windows also works for trials)

Install​

# 1. Fetch the compose bundle
curl -fsSL https://raw.githubusercontent.com/codifinary/codexray/main/deploy/docker-compose.yaml -o docker-compose.yaml

# 2. Bring up the platform
docker compose up -d

# 3. Watch the logs until everything is healthy
docker compose logs -f

The UI becomes available at http://localhost:3000 within a minute or two. The default admin credentials are printed in the logs on first start — change them immediately after login.

Stopping / cleaning up​

docker compose down           # stop, keep data
docker compose down -v # stop and wipe all data

What you get​

  • Full CodeXray platform — collector, query, UI, and auth — running on one host
  • Local ClickHouse + Prometheus
  • A default tenant, project, and admin user, ready to log in
  • A project API key you can copy to instrument your first service

Option C — On-Prem · Kubernetes (Production)​

For production deployments on Kubernetes. Works with any CNCF-conformant cluster running Kubernetes 1.26 or newer.

Prerequisites​

  • A Kubernetes cluster sized per the Requirements tier you picked
  • kubectl configured for the target cluster
  • A default StorageClass with dynamic PVC provisioning
  • Cluster-admin permissions for the initial install

Install​

# Apply the CodeXray manifest
kubectl apply -f https://raw.githubusercontent.com/codifinary/codexray/main/deploy/k8s/codexray.yaml

# Watch the platform come up
kubectl -n codexray get pods -w

All pods should reach Running state within a few minutes. ClickHouse and Prometheus PVCs bind during startup — if they stay Pending, check your StorageClass configuration.

Expose the UI​

By default, the CodeXray UI is a ClusterIP service. Expose it via the method that matches your platform:

  • Ingress (recommended) — wire up your ingress controller with TLS
  • LoadBalancer — kubectl patch svc codexray-ui -n codexray -p '{"spec":{"type":"LoadBalancer"}}'
  • Port-forward (testing only) — kubectl -n codexray port-forward svc/codexray-ui 3000:80
Helm charts for the agents

The agents ship as Helm charts — see the Node Agent and Cluster Agent install pages. You can use them whether the platform itself is deployed via manifest or Docker Compose.


First Login (On-Prem only)​

For SaaS, sign-up handles this — see Step 1 of the SaaS onboarding above.

For self-hosted Docker Compose and Kubernetes:

  1. Open the CodeXray UI in your browser.
  2. Sign in with the initial admin credentials (from first-run logs for Docker Compose; from the admin secret for Kubernetes).
  3. Go to Project Settings → API Keys and copy the default project API key — you'll need it for your agents.
  4. Change the admin password immediately.

Next — Send Telemetry​

An empty CodeXray is no fun. Install one or more agents to start flowing real data. For SaaS, set the collector endpoint to your region URL (e.g. https://saas.codexray.io); for on-prem, set it to your platform's collector URL.

Alternatively, send telemetry directly from any OpenTelemetry-instrumented service — the collector accepts OTLP gRPC and HTTP out of the box.


Upgrading​

SaaS​

You don't upgrade — we do, automatically, with zero downtime. Release notes are posted in the in-app announcement panel.

Docker Compose​

docker compose pull && docker compose up -d

The images are pinned to latest by default; for production, pin to a specific version tag.

Kubernetes​

Apply the updated manifest:

kubectl apply -f https://raw.githubusercontent.com/codifinary/codexray/main/deploy/k8s/codexray.yaml

Rolling updates are the default. Data volumes and existing configuration are preserved across upgrades.


Getting Help​


Next Steps​