DEV.co
Open-Source Observability · basecamp

upright

Upright is a self-hosted synthetic monitoring engine built on Ruby and Rails that runs browser and network health checks from multiple geographic locations, reporting results to Prometheus for alerting. It includes Playwright-based user flow testing, HTTP/SMTP/traceroute probes, and integrates with AlertManager and OpenTelemetry.

Source: GitHub — github.com/basecamp/upright
811
GitHub stars
34
Forks
Ruby
Primary language
MIT
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositorybasecamp/upright
Ownerbasecamp
Primary languageRuby
LicenseMIT — OSI-approved
Stars811
Forks34
Open issues13
Latest releasev0.3.0 (2026-04-09)
Last updated2026-07-08
Sourcehttps://github.com/basecamp/upright

What upright is

A Rails engine deployed via Kamal that executes scheduled probe checks across distributed sites, persists results to SQLite, queues jobs via Solid Queue, and exports Prometheus metrics and OTLP traces. Supports custom probe types via a plugin architecture and subdomain-based multi-tenant routing.

Quickstart

Get the upright source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/basecamp/upright.gitcd upright# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Multi-site uptime monitoring

Organizations needing synthetic monitoring from geographic locations (NYC, Amsterdam, San Francisco, etc.) to validate service availability and performance across regions.

Complex user-flow validation

Teams requiring browser-based testing of authentication flows, critical business transactions, or UI workflows with video recording and artifact collection.

Self-hosted observability stack

Companies building internal monitoring infrastructure who want to own the monitoring system, integrate with existing Prometheus/AlertManager, and avoid SaaS synthetic monitoring costs.

Implementation considerations

  • Requires provisioning multiple VPS instances across geographic regions and configuring each with the `SITE_SUBDOMAIN` environment variable for identity.
  • SQLite database suitable for moderate workloads; large-scale retained probe results (20,000 failed records by default) may require schema optimization or migration to PostgreSQL.
  • Playwright probes need browser runtime (Chromium) installed on each site node; video recording increases storage and I/O demands.
  • OIDC authentication integration (Logto, Keycloak, Okta) required for production; default credentials must be overridden before deploying.
  • Job scheduling and recurring probe execution depend on Solid Queue health; Mission Control dashboard for manual enqueue and job monitoring is essential.

When to avoid it — and what to weigh

  • Rapid SaaS deployment needed — Upright requires self-hosting, Kamal deployment orchestration, and infrastructure setup (VPS provisioning across multiple regions). Not suitable for teams seeking instant cloud-based monitoring.
  • Limited DevOps/infrastructure resources — Requires operational knowledge of Rails deployment, Solid Queue job management, Prometheus configuration, AlertManager setup, and multi-site orchestration. Not a turn-key solution.
  • Need for enterprise SaaS features — Lacks built-in mobile app notifications, managed hosting, dedicated support, or pre-built enterprise alerting channels. AlertManager integration is required for all notifications.
  • High-frequency sub-second probe intervals — Built on Rails/Ruby with job queuing overhead. Not optimized for millisecond-level probe scheduling or extreme-scale distributed probe networks.

License & commercial use

MIT License—permissive open-source license allowing commercial use, modification, and redistribution with attribution.

MIT License is a permissive OSI license. Commercial use, including building proprietary monitoring services around Upright, is permitted. No license restrictions on commercial deployment or resale of derivative works.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityHigh
DEV.co fitGood
Assessment confidenceHigh
Security considerations

Default credentials (admin/upright) must be changed before production. OIDC integration available for identity management. No disclosed security audit or vulnerability history in public data. Browser-based probes execute Playwright code on each site node—sandbox isolation between probes and OS-level access must be evaluated. OTLP endpoint for trace/metric export requires network security review.

Alternatives to consider

Grafana Synthetic Monitoring (Cloud)

Managed SaaS alternative with global probe network, no infrastructure overhead, integrated Grafana dashboards. Trade-off: higher cost, vendor lock-in, limited customization of probe logic.

Checkly

SaaS-native synthetic monitoring with Playwright support, multi-location probes, and alerting. Trade-off: subscription pricing, less control over data residency, less extensible.

Datadog Synthetic Monitoring

Enterprise-grade synthetic and real-user monitoring, global infrastructure, advanced analytics. Trade-off: high cost, steep learning curve, overkill for small-to-mid teams.

Software development agency

Build on upright with DEV.co software developers

Start with a new Rails app and Upright's quick-install generator. Provision VPS nodes, configure sites, and begin monitoring user flows and APIs across geographic regions.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

upright FAQ

Can I run Upright on a single server or do I need multiple sites?
Single-server deployment is supported but defeats the multi-site geographic redundancy advantage. Intended use is multiple VPS nodes across regions; each identifies itself via `SITE_SUBDOMAIN`.
Does Upright store probe video recordings indefinitely?
No. Probe results are auto-cleaned based on `stale_success_threshold` (default 24 hours) and `stale_failure_threshold` (default 30 days), with a failure retention limit of 20,000 records. Artifacts like videos are pruned with results.
What databases does Upright support?
Officially documented for SQLite. PostgreSQL likely compatible (not explicitly stated) but requires verification. SQLite sufficient for moderate probe volumes; consider PostgreSQL for high-frequency probes or large result volumes.
Can I extend Upright with custom probe types?
Yes. Register custom probe types in the initializer, implement `Upright::Probeable` and `Upright::ProbeYamlSource`, define probe YAML, and schedule via `config/recurring.yml`. Framework is extensible but requires Ruby/Rails expertise.

Software developers & web developers for hire

DEV.co helps companies turn open-source tools like upright into production software. Our software development services cover the full lifecycle — architecture, web development, integration, and maintenance — delivered by software developers and web developers who ship. Engage our software development agency to implement or customize it for your open-source observability stack.

Deploy Distributed Monitoring Today

Start with a new Rails app and Upright's quick-install generator. Provision VPS nodes, configure sites, and begin monitoring user flows and APIs across geographic regions.