Create a Private Location
What you’ll learn
Section titled “What you’ll learn”| Time | ~15 minutes |
| Level | Advanced |
| Prerequisites | OpenStatus account, Docker installed |
In this tutorial, you’ll set up a private location — a monitoring probe running on your own infrastructure. This lets you monitor internal applications, private APIs, and network resources behind your firewall without exposing them to the public internet.
Prerequisites
Section titled “Prerequisites”- An OpenStatus account (openstatus.dev)
- Docker installed on your server or local machine (
docker --versionto verify) - At least one monitor already created (see Create Your First Monitor)
What you’ll build
Section titled “What you’ll build”By the end of this tutorial, you’ll have:
- A private location configured in OpenStatus
- A Docker container running the monitoring probe on your infrastructure
- Monitors assigned to check from your private location
What are private locations?
Section titled “What are private locations?”Private locations allow you to monitor internal applications from within your own infrastructure, rather than solely relying on our public cloud-based regions. By deploying monitoring probes as Docker containers on your own machines, you can:
- Monitor internal APIs and services behind your firewall
- Get detailed timing and latency data from your specific deployment location
- Monitor from on-prem servers, Raspberry Pi devices, or any Docker-capable machine
Step 1: Create a private location
Section titled “Step 1: Create a private location”- Navigate to Settings > Private Locations in your OpenStatus dashboard
- Click Create Private Location
- Give your location a descriptive name (e.g., “Office Network”, “AWS us-east-1 VPC”)
- Save the configuration
After creation, you’ll receive a token. Copy this token — you’ll need it in the next step.
Step 2: Deploy the Docker probe
Section titled “Step 2: Deploy the Docker probe”Run the monitoring probe on your server using Docker:
docker run -d \ --name openstatus-probe \ --restart unless-stopped \ -e OPENSTATUS_TOKEN=<your-token> \ ghcr.io/openstatushq/probe:latestReplace <your-token> with the token from Step 1.
Verify the container is running
Section titled “Verify the container is running”docker ps --filter name=openstatus-probeYou should see the container listed with a status of Up:
CONTAINER ID IMAGE STATUS NAMESabc123 ghcr.io/openstatushq/probe:latest Up 2 minutes openstatus-probeStep 3: Assign monitors to your private location
Section titled “Step 3: Assign monitors to your private location”- Go to Settings > Private Locations and select your location
- Choose which monitors should run from this private location
- Alternatively, edit an individual monitor and select your private location in its settings
Checkpoint: Within a couple of minutes, you should see monitoring data appearing in your monitor’s overview from your private location.
What you’ve accomplished
Section titled “What you’ve accomplished”You’ve successfully:
- ✅ Created a private location in OpenStatus
- ✅ Deployed a monitoring probe on your own infrastructure
- ✅ Assigned monitors to check from your private location
Current limitations
Section titled “Current limitations”- Incidents are not yet created for monitors running via private locations. Continue using OpenStatus public regions if you need alerting.
- Public monitors on status pages do not yet support private locations.
Troubleshooting
Section titled “Troubleshooting”Container exits immediately
Section titled “Container exits immediately”Check the container logs for errors:
docker logs openstatus-probeCommon causes:
- Invalid token: Double-check the token value — ensure no extra spaces or newlines
- Network issues: Ensure the container can reach
api.openstatus.devon port 443
No data appearing in the dashboard
Section titled “No data appearing in the dashboard”- Verify the container is running:
docker ps --filter name=openstatus-probe - Check that you’ve assigned at least one monitor to the private location
- Wait 2-3 minutes — there may be a short delay before the first check runs
Container can’t reach internal services
Section titled “Container can’t reach internal services”If the probe needs to reach services on your host machine, use Docker’s host networking:
docker run -d \ --name openstatus-probe \ --restart unless-stopped \ --network host \ -e OPENSTATUS_TOKEN=<your-token> \ ghcr.io/openstatushq/probe:latestWhat’s next?
Section titled “What’s next?”- Read our Raspberry Pi deployment guide — Deploy probes on low-cost hardware
- Create a Monitor — Set up more monitors to run from your private location