Installation preparation
What to decide and prepare before installing Orbtrace — the three deployment paths, hardware and kernel prerequisites, the real port list, and the post-install checklist.
Pick the deployment path that matches your environment. Each one ends with the same outcome: Orbtrace running on your hardware, reachable on port 8080, ready for the First login.
One thing to know before you start
Orbtrace ships the product — server, UI, and storage. It does not ingest telemetry itself and does not bundle an OpenTelemetry Collector. After install you stand up a Collector (a single docker run, or a block in your existing pipeline) that forwards data into Orbtrace's database. See Integration patterns. These pages get Orbtrace running; the Collector is the step right after.
Decide which path you want
Not sure how big to build it?
Before you pick a path, run the Capacity planning — enter your daily volume, retention, and service count and it returns the Helm sizing, the Doris FE/BE counts, the vCPU / memory / disk to provision, and a ready-to-paste my-values.yaml overlay. It's grounded in Apache Doris's published deployment guidance.
All paths end with the same running Orbtrace. They differ in where it runs and how far it scales:
| Path | Best for | What it runs | Scales to |
|---|---|---|---|
| Docker Compose | The recommended default — single-host production, and the fastest way to evaluate | Everything on one machine, one command — app + Doris + Postgres + Valkey, wired together | One host |
| Kubernetes (Helm) | Teams already on Kubernetes that need HA and large volumes | The stateless app in-cluster; you provide Doris (and, recommended, Postgres) | Many nodes |
| Bare metal (Ansible) | A single Linux host you want set up and managed for you | The Compose stack, installed and run as a systemd service | One host |
| Cloud (EKS / AKS / GKE) | A managed Kubernetes cluster on AWS, Azure, or GCP | The Helm path, with the provider's managed Postgres and storage | Many nodes |
Is Docker Compose only for testing? No. It brings up the whole stack — including Doris — with one command, which makes it both the quickest way to try Orbtrace and a perfectly good single-host production deployment for small-to-mid volumes. Reach for Helm only when you need to scale horizontally across a Kubernetes cluster; reach for Ansible when you want that same single-host stack installed and managed for you.
Prerequisites — applies to all paths
-
Linux (Ubuntu 22.04+ / Debian 12+ / RHEL or Rocky 9+ tested). macOS works for Docker Compose only, for development.
-
CPU: 4 cores minimum, 8 recommended.
-
RAM: 8 GB minimum for the default stack, 16 GB comfortable. 32 GB+ per Doris node for serious workloads.
About the '4 GB tiny VPS' claim
The default stack runs Apache Doris with three storage nodes, which alone wants several GB. 4 GB is not enough for it. A 4 GB box needs a reduced single-Doris-node footprint, which the shipped Compose file does not provide out of the box — treat 8 GB as the real floor unless you've deliberately trimmed Doris.
-
Disk: SSD strongly recommended for the Doris data directory. Budget about 30 GB per million spans per day before compression (~3–5 GB after).
-
Kernel (Doris needs this):
vm.max_map_count ≥ 2000000and swap disabled. The Compose stack sets these for you via a privileged init container; the Ansible playbook sets them on the host. On Kubernetes it is a node setting — see Setting up Doris. -
Ports:
On screen- 8080Orbtrace backend + UI. Published by default. This is the address you and your team open.
- 4317 / 4318OTLP gRPC / HTTP — opened by your Collector, not by Orbtrace. Your apps send here. (Covered in Integration patterns.)
- 8030 / 9030Doris FE — Stream Load (HTTP) and MySQL wire. Bound to loopback only; never expose on a LAN.
- internalPostgreSQL (settings) and Valkey (cache) are not published at all — reachable only inside the stack's network.
- 80 / 443Only if you put a reverse proxy in front for HTTPS — the optional Caddy
edgeprofile, your own Nginx, or the Helm Ingress. Not opened by default.
For volume-based sizing (Doris FE/BE counts, CPU/memory/disk), see Capacity planning.
Choose your path
- Single-host (Docker Compose) — recommended all-in-one; also the fastest eval.
- Bare metal (Ansible) — the same single-host stack, installed and managed for you.
- Deploying on Kubernetes — the stateless app via Helm, with external datastores.
- Deploying on Cloud — the Kubernetes path on AWS (EKS), Azure (AKS), or GCP (GKE).
Post-install checklist
After any path, do these before you let anyone else in:
- Confirm
PGPASSWORDisn't the placeholder (Compose won't stop you booting with it).DORIS_PASSWORDdeliberately stays empty — the bundled Doris root account is passwordless, so don't "fix" it. - Set up authentication — wire at least one SSO provider; see Authentication.
- Apply your license if you have one — Admin → License, or
ORBTRACE_LICENSE_KEY. Without it you're on the free COMMUNITY edition (3 services / 3-day retention). See Licensing. - Stand up a Collector and prove data flows — Integration patterns, then point a real service at it via Instrument your apps.
- Terminate TLS — Caddy
edgeprofile, your own reverse proxy, or the Helm Ingresstls. - Pick an AI provider if you want RCA / Replay — Admin → AI (see Admin screens).
- Set up backups — on Kubernetes, enable the chart's
backup.*CronJobs (Postgrespg_dump+ Doris snapshot). On Compose/Ansible, schedule apg_dumpof Postgres and a DorisBACKUP SNAPSHOT.
If any step trips, jump to Troubleshooting.