---
title: "Deploy Rootprint"
description: "Open-source logs and traces with full-text search on object-storage."
category: "Observability"
url: https://railway.com/deploy/rootprint-1
---

# Deploy Rootprint

Open-source logs and traces with full-text search on object-storage.

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

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

- **Creator:** Rootprint
- **Category:** Observability
- **Total deploys:** 1

## Template content

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

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

### rootprint https://raw.githubusercontent.com/rootprint/rootprint/main/apps/web/static/logo.png

- **Image:** ghcr.io/rootprint/rootprint:latest
- **Public domain:** Yes

### quickwit https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/svg/quickwit.svg

- **Image:** quickwit/quickwit:v0.9.0
- **Start command:** `quickwit run`

## Buckets

- **Bucket**

## Documentation

# Deploy and Host Rootprint with Railway

Rootprint is an open-source, self-hosted logs and traces platform with full-text search on object-storage-backed indexes. It ingests OpenTelemetry data and gives your team a log explorer, trace waterfalls, a service health dashboard, and team access control, while every byte of telemetry stays inside your own Railway project. Apache-2.0 licensed.

![Rootprint log explorer](https://raw.githubusercontent.com/rootprint/rootprint/main/.github/assets/clean-explorer.png)

## About Hosting Rootprint

This template deploys four services. `rootprint` is the API and web UI on a public domain. `quickwit` is the search engine (Quickwit 0.9.0) that indexes and queries your telemetry. `Bucket` is Railway object storage where Quickwit writes every index and its metastore, so all indexed history lives in durable storage at $0.015 per GB-month with free egress. `Postgres` holds users, settings, saved views, and audit rows. On first boot `rootprint` runs its migrations and probes Quickwit before it starts listening. Open the public URL, create the first admin account, create an ingest key under **Settings → API keys**, and point your OpenTelemetry Collector at `/v1/logs` and `/v1/traces` with that key as a bearer token. A custom domain needs no variable changes because `ORIGIN` follows `RAILWAY_PUBLIC_DOMAIN`.

## Common Use Cases

- Centralized log search for a Railway project or a fleet of services without paying a hosted SaaS per gigabyte.
- Distributed tracing: open a trace from any log line or paste a trace ID, then read per-span timing, attributes, and events.
- Service health monitoring: request rate, error rate, and p95 latency per service, slow endpoints, outbound dependencies, and failing spans.
- Team-shared observability with invites, roles, scoped ingest keys, service accounts, and Google, GitHub, or OpenID Connect single sign-on.
- Long-retention audit and compliance logs stored cheaply in object storage.

## Dependencies for Rootprint Hosting

- Quickwit 0.9.0 (`quickwit/quickwit:v0.9.0`) as the search engine
- Railway Storage Bucket for index and metastore storage
- Railway PostgreSQL for application data
- Any OTLP-compatible sender: OpenTelemetry Collector, Vector, Fluent Bit, or an OpenTelemetry SDK

### Deployment Dependencies

- Rootprint docs: https://docs.rootprint.io
- Quickstart: https://docs.rootprint.io/quickstart
- Send logs: https://docs.rootprint.io/send-logs/overview
- Query syntax: https://docs.rootprint.io/search/query-language
- API reference: https://docs.rootprint.io/api/overview
- Scaling beyond one node: https://docs.rootprint.io/install/scaling
- Source: https://github.com/rootprint/rootprint
- Live demo: https://demo.rootprint.io

### Implementation Details

Minimal OpenTelemetry Collector exporter pointing at your deployment:

```yaml
exporters:
  otlphttp/rootprint:
    endpoint: https://
    headers:
      Authorization: Bearer 
```

Logs land in the bundled `otel-logs-v0_9` index; spans go to `POST /v1/traces` with the same key.

Variables preset by this template:

- `rootprint`: `DATABASE_URL=${{Postgres.DATABASE_URL}}`, `QUICKWIT_URL=http://${{quickwit.RAILWAY_PRIVATE_DOMAIN}}:7280`, `ORIGIN=https://${{RAILWAY_PUBLIC_DOMAIN}}`, `BETTER_AUTH_SECRET=${{secret(64)}}`, `TRUST_PROXY_HOPS=1`
- `quickwit`: `QW_DEFAULT_INDEX_ROOT_URI=s3://${{Bucket.BUCKET}}/indexes`, `QW_METASTORE_URI=s3://${{Bucket.BUCKET}}/metastore`, `QW_S3_ENDPOINT=${{Bucket.ENDPOINT}}`, plus `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, and `AWS_REGION` referenced from the bucket

Notes:

- `BETTER_AUTH_SECRET` is generated once at deploy time. Keep it: it signs sessions and encrypts stored OAuth tokens.
- `TRUST_PROXY_HOPS=1` matches Railway's edge proxy, so rate limits key on the real client IP.
- The `quickwit` volume only holds the ingest queue and indexing scratch. Losing it costs at most in-flight data, never history.
- Railway buckets use virtual-hosted S3 URLs, which is Quickwit's default, so no flavor or path-style override is set.
- This is a single-node Quickwit with a file-backed metastore. To run multiple Quickwit nodes, move the metastore to Postgres as described in the scaling guide.
- Rootprint requires Quickwit 0.9.0. Do not bump the `quickwit` image on its own.

## Why Deploy Rootprint 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 Rootprint 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. Your logs and traces stay in the same project as the services that produce them, the bucket gives you cheap durable retention, and the whole stack comes up from one click with no external accounts to wire together.


## Similar templates

- [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
- [Unwrapped Spotify Music Stats](https://railway.com/deploy/wide-bold) — Unwrapped Spotify Music Stats, Estatísticas de músicas disponíveis

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