Railway

Deploy Uptime

Monitor uptime, logs, alerts & status pages in one platform

Deploy Uptime

Just deployed

/data

/var/lib/postgresql/data

Just deployed

Just deployed

/var/lib/clickhouse

Just deployed

Just deployed

Just deployed

Deploy and Host OneUptime on Railway

OneUptime is an open-source observability platform that brings uptime monitoring, incident management, status pages, on-call scheduling, logging, metrics, distributed tracing, error tracking, and application performance monitoring (APM) together in one application. Instead of managing multiple SaaS products, teams can self-host OneUptime to monitor infrastructure, respond to incidents, collect telemetry, and communicate system health from a centralized dashboard.

About Hosting OneUptime

This Railway template deploys a complete OneUptime stack using multiple containerized services. The deployment includes the OneUptime App, NGINX Ingress, Monitoring Probe, AI Agent, PostgreSQL, Redis, and ClickHouse. Railway automatically provisions each service, connects them over a private network, generates secure internal DNS, manages secrets through Variables, provides HTTPS via Railway Domains, and supports persistent storage using Railway Volumes.

PostgreSQL stores application and configuration data, Redis powers caching and background workers, and ClickHouse stores observability data such as logs, traces, metrics, and telemetry. Railway manages service networking and health checks, making it easy to deploy, update, and scale the entire observability platform without managing infrastructure manually. After deployment, simply generate a Railway domain for the Ingress service and create the first administrator account.

Common Use Cases

  • Monitor websites, APIs, SSL certificates, DNS records, TCP ports, and synthetic transactions.
  • Manage production incidents with on-call schedules, alert escalations, and public status pages.
  • Collect logs, distributed traces, metrics, and application performance data using OpenTelemetry.

Dependencies for OneUptime Hosting

DependencyPurpose
PostgreSQLPrimary relational database
RedisCache, queues, scheduled jobs, background workers
ClickHouseLogs, metrics, traces, observability storage

Deployment Dependencies

ResourceURL
Official Websitehttps://oneuptime.com
Documentationhttps://docs.oneuptime.com
GitHub Repositoryhttps://github.com/OneUptime/oneuptime
Docker Hubhttps://hub.docker.com/u/oneuptime
ClickHousehttps://clickhouse.com
Redishttps://redis.io
PostgreSQLhttps://www.postgresql.org

Implementation Details

Template Services

This Railway template deploys the following services:

ServiceDocker ImagePurpose
apponeuptime/app:11.5.10Main OneUptime application
ingressoneuptime/nginx:11.5.10Public HTTP gateway and reverse proxy
probeoneuptime/probe:11.5.10Executes uptime and synthetic monitoring checks
ai-agentoneuptime/ai-agent:11.5.10AI-powered observability and automation
Postgresghcr.io/railwayapp-templates/postgres-ssl:18Application database
Redisredis:8.2.1Cache and background jobs
clickhouseclickhouse/clickhouse-server:25.7Observability database

Docker Images

The template deploys official pre-built Docker images, so Railway pulls the images directly without building from source.

ServiceImage
Apponeuptime/app:11.5.10
Ingressoneuptime/nginx:11.5.10
Probeoneuptime/probe:11.5.10
AI Agentoneuptime/ai-agent:11.5.10
PostgreSQLghcr.io/railwayapp-templates/postgres-ssl:18
Redisredis:8.2.1
ClickHouseclickhouse/clickhouse-server:25.7

No custom build commands are required because every service uses a published Docker image.


Public Networking

Only the Ingress service should be exposed publicly.

SettingValue
Public Serviceingress
Proxy TypeHTTP Proxy
HTTPSEnabled automatically
Internal ServicesPrivate Railway Network

The remaining services communicate only through Railway's internal networking.


Railway Volumes

Persistent storage should be attached to the following services.

ServiceMount Path
PostgreSQL/var/lib/postgresql/data
ClickHouse/var/lib/clickhouse
Redis/data

To configure a volume:

  1. Open the Railway project.
  2. Select the service.
  3. Open Settings → Volumes.
  4. Click Add Volume.
  5. Use the mount path listed above.

The App, Probe, AI Agent, and Ingress services do not require persistent storage.


Database Services

PostgreSQL

Stores:

  • Organizations
  • Users
  • Monitors
  • Incidents
  • Status pages
  • Configuration
  • Alert policies

Use Railway reference variables for the database connection.


Redis

Handles:

  • Background workers
  • Cache
  • Task queues
  • Scheduled jobs
  • Rate limiting

Persistence is recommended.


ClickHouse

Stores:

  • Logs
  • Metrics
  • Distributed traces
  • Telemetry
  • Time-series data

Persistent storage is required to retain observability data.


Environment Variables

Most required variables are automatically generated by the Railway template.

Typical configuration includes:

VariableRequiredDescription
DATABASE_URLYesPostgreSQL connection string
REDIS_URLYesRedis connection string
CLICKHOUSE_URLYesClickHouse HTTP connection
APP_SECRETYesApplication secret
JWT_SECRETYesJWT signing secret
BASE_URLYesPublic Railway domain
SMTP_HOSTOptionalSMTP server
SMTP_USERNAMEOptionalSMTP username
SMTP_PASSWORDOptionalSMTP password
OPENAI_API_KEYOptionalEnables AI features

Example:

DATABASE_URL=${{Postgres.DATABASE_URL}}
REDIS_URL=${{Redis.REDIS_URL}}
CLICKHOUSE_URL=http://clickhouse:8123

APP_SECRET=
JWT_SECRET=

BASE_URL=https://your-app.up.railway.app

Secrets should always be stored using Railway Variables.


Build & Start

Since every service uses published Docker images, Railway does not perform any application builds.

No custom build or start commands are required.


Accessing the Application

After deployment:

  1. Open the ingress service.
  2. Navigate to Settings → Networking.
  3. Click Generate Domain.
  4. Visit the generated HTTPS URL.
  5. Create the first administrator account.
  6. Create your organization.
  7. Configure notification providers.
  8. Create uptime monitors, dashboards, incidents, and status pages.

Platform Limitations

The following features are not available in Railway's standard runtime:

  • ICMP (Ping) monitoring
  • Docker socket monitoring
  • Host-level container discovery
  • Inbound UDP collectors

SMTP is only available on Railway plans that support outbound email. On lower plans, configure an external transactional email provider that exposes an HTTPS API.

Custom domains for status pages can be configured through Railway → Settings → Networking after deployment.


Service Architecture

                 Internet
                     │
                     ▼
              Railway Domain
                     │
                     ▼
               ingress (NGINX)
                     │
         ┌───────────┼───────────┐
         │                       │
         ▼                       ▼
       app                 probe
         │                       │
         ├──────────────┐        │
         ▼              ▼        ▼
    PostgreSQL       Redis   AI Agent
         │
         ▼
    ClickHouse

Why Deploy OneUptime 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 OneUptime 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.


Template Content

More templates in this category

View Template
Rocky Linux
[Jul'26] Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
25
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
51