Keep-Alive Ping

Many free PaaS tiers (Render free, classic Heroku free dynos, some Fly.io plans) put your app to sleep after a few minutes of HTTP inactivity. Pypen ships with a tiny module, ping/, that periodically pings the public URL of the dashboard so the platform thinks the app is busy.

Enabling the Pinger

Set ping = true in [defaults]:

[defaults]
ping     = true
ping_url = ""

The pinger picks a URL in this order:

  1. [defaults].ping_url — if set, used as-is.
  2. APP_URL environment variable.
  3. Auto-detection (Heroku HEROKU_APP_NAME, Render RENDER_EXTERNAL_URL, etc.).

How it Works

ping/ waits for the worker manager to finish initial project setup (so the first ping doesn't compete for I/O), then enters a simple loop that issues an HTTP GET against the configured URL on a fixed interval. Failures are logged but never raise — the pinger is fire-and-forget by design.

Disabling It

On a "real" VPS or dedicated host the pinger is just noise. Disable it:

[defaults]
ping = false

Self-pinging is not a real health check

The pinger keeps the dyno awake; it does not verify that your workers are actually doing useful work. For real liveness checks, rely on s6-overlay and the dashboard.