---
title: "Deploy Uptrace"
description: "Uptrace 2.0: OpenTelemetry APM for traces, logs and metrics on ClickHouse."
category: "Observability"
url: https://railway.com/deploy/uptrace-1
---

# Deploy Uptrace

Uptrace 2.0: OpenTelemetry APM for traces, logs and metrics on ClickHouse.

**[Deploy Uptrace on Railway](https://railway.com/template/uptrace-1)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/uptrace-1/manifest.json

- **Creator:** Agaz Self-Host
- **Category:** Observability

## Template content

### clickhouse https://avatars.githubusercontent.com/u/54801242

- **Image:** clickhouse/clickhouse-server:26.3.33.24

### Redis https://cdn.sanity.io/images/sy1jschh/production/0ce0bfdcfbdbf69662b1116671f97c2dd788b655-157x157.svg

- **Image:** redis:8.2
- **Start command:** `/bin/sh -c "rm -rf $RAILWAY_VOLUME_MOUNT_PATH/lost+found/ && exec docker-entrypoint.sh redis-server --requirepass $REDIS_PASSWORD --save 60 1 --dir $RAILWAY_VOLUME_MOUNT_PATH"`

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18

### uptrace https://avatars.githubusercontent.com/u/64948717

- **Image:** uptrace/uptrace:2.0.3
- **Start command:** `sh -c 'mkdir -p /etc/uptrace; printf "%s\n" "$UPTRACE_CONFIG" > /etc/uptrace/config.yml; exec /uptrace --config=/etc/uptrace/config.yml serve'`
- **Health check:** /api/v1/healthz
- **Public domain:** Yes

## Documentation

# Deploy and Host Uptrace on Railway

Uptrace is an OpenTelemetry-native APM for distributed tracing, logs and metrics. It stores telemetry in ClickHouse, groups spans and logs automatically, and offers dashboards, alerts and a query language, so it works as a self-hosted alternative to Datadog, New Relic or a Grafana tracing stack.

## About Hosting Uptrace

This template runs `uptrace/uptrace:2.0.3`, the latest stable release, with ClickHouse for telemetry, Railway PostgreSQL for metadata and Railway Redis as a cache. The config file is written at startup from variables, and the admin user, an organisation, a project and its ingest token are seeded on first boot. Apps send OpenTelemetry data over OTLP/HTTP to the public domain with the `uptrace-dsn` header; requests with a wrong token are refused. gRPC ingest stays on the private network. ClickHouse data is on a volume, so telemetry survives redeploys. Plan on 2 GB of memory or more; ClickHouse is the main consumer.

## Common Use Cases

- Tracing requests across microservices with OpenTelemetry
- Central logs and metrics for apps running on Railway
- Alerts on error rates and latency without a SaaS bill

## Dependencies for Uptrace Hosting

- `uptrace/uptrace:2.0.3` (official image)
- `clickhouse/clickhouse-server:26.3.33.24` (official image)
- Railway PostgreSQL and Railway Redis

### Deployment Dependencies

- [Uptrace documentation](https://uptrace.dev/get/hosted/install)
- [Uptrace on GitHub](https://github.com/uptrace/uptrace)
- [OpenTelemetry](https://opentelemetry.io/docs/)

### Implementation Details

| Service | Source | Networking | Storage |
| --- | --- | --- | --- |
| uptrace | `uptrace/uptrace:2.0.3` | public domain on 8080 (UI + OTLP/HTTP), private gRPC 4317 | none |
| clickhouse | `clickhouse/clickhouse-server:26.3.33.24` | private | volume at `/var/lib/clickhouse` |
| Postgres | Railway PostgreSQL | private | Railway volume |
| Redis | Railway Redis | private | Railway volume |

| Variable | Default | Purpose |
| --- | --- | --- |
| `UPTRACE_ADMIN_EMAIL` | `admin@example.com` | Admin user (first boot only) |
| `UPTRACE_ADMIN_PASSWORD` | generated | Its password |
| `UPTRACE_PROJECT_TOKEN` | generated | Ingest token in the DSN |
| `UPTRACE_SECRET` | generated | Signs sessions |
| `UPTRACE_CONFIG` | template | Full `config.yml`, with `${VAR}` placeholders |

Notes:

- DSN for OpenTelemetry SDKs: `https://@?grpc=4317`, sent over HTTP.
- Edit `UPTRACE_CONFIG` to enable SMTP alerts or change retention.

This is a community-maintained deployment package and does not imply affiliation with or endorsement by Uptrace.

## Why Deploy Uptrace on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Uptrace on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


## Similar templates

- [Rootprint](https://railway.com/deploy/rootprint-1) — Open-source logs and traces with full-text search on object-storage.
- [Pyroscope profiling](https://railway.com/deploy/pyroscope-profiling) — Protected continuous profiling with durable Pyroscope storage.
- [SigOnly](https://railway.com/deploy/sigonly) — Deploy SigNoz with a working demo app & config in one click

Open this page in a browser: https://railway.com/deploy/uptrace-1
