# How do I send cron pings from behind a firewall?

Cron pings need to make an outbound HTTPS request to `ping.ohdear.app`. In most environments this just works: a single `curl` or HTTP call at the end of the job is enough.

If your environment has **restricted outbound traffic** (strict firewalls, egress proxies, air-gapped networks), a few things can help.

## Allow outbound HTTPS to `ping.ohdear.app`

The `ping.ohdear.app` hostname is stable. Resolve it through DNS and allow outbound HTTPS (port 443) to the resulting IP addresses in your firewall rules. Because IP addresses can change with CDN rotations, it's best to allow by **hostname** rather than by IP where your firewall supports it.

## Route through an egress proxy

If your environment forces all outbound HTTP through a proxy, `curl` and most HTTP libraries honour the standard `HTTPS_PROXY` / `https_proxy` environment variable:

```bash
HTTPS_PROXY=http://your-proxy:3128 curl https://ping.ohdear.app/your-ping-token
```

Make sure the proxy allows traffic to `*.ohdear.app`.

## HTTP (not HTTPS) pings

If your environment can't do HTTPS at all (very rare, but we've seen it), we also accept pings over plain HTTP to `http://ping.ohdear.app`. We strongly recommend HTTPS wherever possible for integrity reasons, but the HTTP endpoint exists as a fallback.

## The ping endpoint has to be reachable from wherever the cron runs

A common gotcha: the server running your cron is different from the server you're testing `curl` on. Verify the ping from the **exact** machine (and user context) your cron will run as. Some shared-hosting environments block outbound traffic from the cron user while allowing it from interactive sessions.

## You can't send pings at all

If your environment genuinely can't reach any external service from cron, [application health monitoring](/docs/features/application-health-monitoring) may be a better fit. Instead of the cron pinging us, your application writes a health report to disk (or a shared location we can pull from), and we fetch it on a schedule.

For a full list of ways to send pings (curl, wget, PowerShell, various SDKs), see [Cron job monitoring docs](/docs/features/cron-job-monitoring).
