Skip to content

What do you need to do?

Docs

RealUptime + Supabase

Supabase is a managed service, so there is nothing to install an agent on. What you monitor instead is the boundary your app actually depends on: the REST and Auth endpoints your client talks to, and the Postgres connection itself if your app connects directly, plus your own app's exceptions when a query or an auth call fails.

What you are setting up

HTTP checks on Supabase's REST (PostgREST) and Auth endpoints, a TCP check on the direct Postgres connection if your app uses it, RealUptime Errors in the application code that calls Supabase, and a status page.

Create the checks

Point checks at your own project's REST and Auth URLs, which is what actually breaks your app when Supabase (or your network path to it) has a problem:

bash
export REALUPTIME_API_KEY=ru_live_...

# PostgREST responds 200 with an empty OpenAPI doc when it is healthy
realuptime checks create \
  --name "Supabase REST" \
  --url https://YOUR-PROJECT.supabase.co/rest/v1/ \
  --interval 60 \
  --regions iad,fra

realuptime checks create \
  --name "Supabase Auth" \
  --url https://YOUR-PROJECT.supabase.co/auth/v1/health \
  --interval 60 \
  --regions iad,fra

# Direct Postgres connection, if your app connects to it directly rather
# than only through PostgREST
realuptime checks create \
  --name "Supabase Postgres" \
  --url tcp://db.YOUR-PROJECT.supabase.co:5432 \
  --interval 60 \
  --regions iad

A TCP check confirms the port accepts a connection; it does not run a query. See TCP checks for the TLS handshake and certificate-expiry options, and Checks & monitors for a JSON-path assertion on the REST response if a 200 status alone is not proof enough that the database behind it is actually reachable.

Connect RealUptime Errors

Wrap Supabase client calls in your own error handling and report failures (a failed query, a rejected auth call, a Row Level Security denial you did not expect) through the SDK, so they land as issues with a stack trace rather than a silently swallowed { error } object:

typescript
// wherever you initialize the Supabase client
import { init } from "@realuptime/errors";

init({
  dsn: process.env.REALUPTIME_ERRORS_DSN,
});

See Errors quickstarts for the adapter that matches your app's framework (Next.js, Node, and others).

Add a status page

Create a status page and add the REST, Auth, and (if used) Postgres checks as components. See Status pages for custom domains and subscriber notifications.

What RealUptime does and does not see

The checks see whether Supabase's REST and Auth endpoints respond, and whether the Postgres port accepts a connection, from the regions you chose. They do not see your schema, your data, your Row Level Security policies, or Supabase's own internal health metrics; for Supabase's own infrastructure status, its own status page is the source of truth. RealUptime Errors sees only exceptions your own code reports through the SDK, never the contents of a query or its result.