---
title: "Deploy Uptimy Agent"
description: "Self-hosted uptime monitoring and status page for your Railway services"
category: "Observability"
url: https://railway.com/deploy/uptimy-agent
---

# Deploy Uptimy Agent

Self-hosted uptime monitoring and status page for your Railway services

**[Deploy Uptimy Agent on Railway](https://railway.com/template/uptimy-agent)**

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

- **Creator:** ajdin-halac's Projects
- **Category:** Observability
- **Total deploys:** 1

## Template content

### Uptimy Agent https://www.upti.my/brand/uptimy-app-icon.png

- **Image:** ghcr.io/uptimy/agent:latest
- **Health check:** /healthz
- **Public domain:** Yes

## Documentation

# Deploy and Host Uptimy Agent on Railway

Uptimy Agent is open-source, self-hosted uptime monitoring with a public status page. It checks websites, APIs, Postgres, MySQL, Redis, DNS, TLS certificates and cron jobs, and alerts you by email, Slack, Teams, Discord, Telegram, ntfy, PagerDuty or webhooks. One small Go binary with a web UI. Apache-2.0.

**See it live:** [demo status page](https://uptimy-agent-production-b9a3.up.railway.app/status), an agent watching its own Railway project.

## About Hosting Uptimy Agent

The agent runs as a single service with a volume at `/data` for its SQLite database, so keep it at one replica. Because it runs inside your project, it can reach services over private networking (`*.railway.internal`) that external monitors can't see, and check your databases with a real login and query. Pass connection URLs as reference variables (`PG_URL` = `${{Postgres.DATABASE_URL}}`) and use `${PG_URL}` as a monitor's target, so passwords never land in the agent's database. Sign in as `admin` with the generated `ADMIN_PASSWORD` from the service's Variables tab. The public status page is served at `/status` on the generated domain.

## Common Use Cases

- Monitor private services and workers on `*.railway.internal` without exposing them
- Check Postgres, MySQL and Redis with real logins and queries, not just an open port
- Catch missed or failed cron jobs and backups: a Railway cron service pings a heartbeat URL after each run
- Watch the third-party APIs and websites your app depends on
- Publish a status page for your customers with your logo, sections and scheduled maintenance notices
- Replace an Uptime Kuma deploy: import `kuma.db` with its monitors and notifications

## Dependencies for Uptimy Agent Hosting

- A volume mounted at `/data`
- `RAILWAY_RUN_UID=0` so the agent can write to the volume

### Deployment Dependencies

- Source and docs: https://github.com/uptimy/agent
- Image: `ghcr.io/uptimy/agent`
- Railway setup notes: https://github.com/uptimy/agent/blob/main/deploy/railway.md

### Implementation Details

Monitors can be added in the UI or defined as config with the `MONITORS_YAML` variable. Reference variables keep targets correct when services are renamed. This is the demo's setup:

    healthchecks:
      - name: Website over private networking
        type: http
        target: http://${{nodejs.RAILWAY_PRIVATE_DOMAIN}}:3000
      - name: Postgres
        type: postgres
        target: ${PG_URL}
      - name: Postgres is the primary
        type: postgres
        target: ${PG_URL}
        config: { query: "SELECT pg_is_in_recovery()", expected: "false" }
    heartbeats:
      - name: Database backup
        every: 5m
        grace: 3m

For the heartbeat, a cron service (`curlimages/curl`, schedule `*/5 * * * *`) runs `curl -fsS https://<agent-domain>/ping/<token>`, and the agent alerts when a run is missed.

A monitor running on Railway can't tell you when Railway itself is down. Connect the agent to Uptimy (free) under Settings → Watch the watcher, and Uptimy alerts you from outside if the agent stops checking in.

## Why Deploy Uptimy Agent 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 Uptimy Agent 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/uptimy-agent
