Skip to content

What do you need to do?

Docs

RealUptime + Railway

Railway runs your service in a managed container it manages the lifecycle of, which means there is no box of your own for the Monitor agent to run on. What you get instead: an HTTP check on the public domain Railway gives you, RealUptime Errors in the process itself, and a status page.

What you are setting up

A check against the service's public Railway domain (or your own custom domain if you attached one), the Errors SDK inside the running process, and a status page. No agent step: a Railway service is a managed container with no persistent host you have shell access to.

Create the check

Point a check at the Railway-provided domain, or your own custom domain if the service has one attached:

bash
export REALUPTIME_API_KEY=ru_live_...

realuptime checks create \
  --name "API on Railway" \
  --url https://myservice-production.up.railway.app/ \
  --interval 60 \
  --regions iad,fra

If the service is a private Railway service with no public domain (an internal worker reachable only over Railway's private network), a cloud probe cannot reach it at all; give it a heartbeat check instead so it pings RealUptime on a schedule and RealUptime alerts when it goes quiet. See Heartbeat monitors.

Connect RealUptime Errors

Railway sets useful environment variables on every deploy (RAILWAY_GIT_COMMIT_SHA, RAILWAY_ENVIRONMENT_NAME); attach them so an error is tagged with the exact commit and environment it happened on:

typescript
// server.ts, before anything else runs
import { init } from "@realuptime/errors";

init({
  dsn: process.env.REALUPTIME_ERRORS_DSN,
  release: process.env.RAILWAY_GIT_COMMIT_SHA,
  environment: process.env.RAILWAY_ENVIRONMENT_NAME,
});

Set REALUPTIME_ERRORS_DSN as a Railway service variable rather than committing it. See Errors quickstarts for the framework-specific adapters (Next.js, Express, and others) if the service is not a bare Node process.

Add a status page

Create a status page from the dashboard and add the check above as a component. See Status pages for custom domains and subscriber notifications.

What RealUptime does and does not see

The check sees the HTTP response Railway's edge returns, from each region you chose, exactly like a real visitor; it does not see Railway's build logs, deploy status, or resource usage graphs, which stay in Railway's own dashboard.

There is no Monitor agent for a Railway service: the platform gives you a container, not a server, and the agent needs a persistent process with OS-level access the platform does not expose. If part of your stack also runs on infrastructure you fully control, see Monitor a Hetzner VPS or Monitor Docker containers for that half.