Your websites, at a glance.
Know what’s working. See what needs your attention.
Add your first website to start monitoring.
Monitored websites 0
External checks and backend health, together.
| Website | Status | Response | Availability · 24h | Recent checks | Connector | Actions |
|---|
Your first website starts here.
Add a public URL to check availability, response time, and SSL.
Connect a backend agent when you’re ready for deeper insight.
Domain monitors 0
Track domain registration independently from a website.
Find domains in a registrar or DNS account (optional)
Connect an account to preview its inventory, then choose which domains to monitor. You can still add domains manually or import a list above.
Registrar account inventory
See Route 53 registrations and renewal settings. Connect with a read-only AWS key; nothing is imported until you choose.
Required AWS permission: route53domains:ListDomains only · Region: us-east-1 · This connector does not change domains or DNS.
How to create the read-only AWS permission
- In AWS IAM, create a dedicated identity for SiteWatch. Do not use your AWS root account key.
- Create a customer-managed policy with only the permission below, then attach it to that identity. AWS requires
Resource: *for this list action, so it can list every Route 53 registration in that AWS account. - Create an access key for the dedicated identity. Paste its ID and secret below; use the optional session token only for temporary credentials.
{"Version":"2012-10-17","Statement":[{"Effect":"Allow","Action":"route53domains:ListDomains","Resource":"*"}]}Connect AWS Route 53 Domains
Checking for a connected registrar…
| Registered domain | Registrar expiry | Account status | Auto-renew | Transfer lock | SiteWatch status |
|---|
Cloudflare DNS zone inventory
Review zones visible to a read-only token, then import their registered domains for SiteWatch expiry and health monitoring.
Create a custom token with Zone Read and scope it to selected zones. See Cloudflare’s token guide. This reads zone names, status, type, and nameservers; it cannot see registration expiry or billing, and it never changes DNS. The token is sent over HTTPS and encrypted on this SiteWatch server.
Connect Cloudflare zones
Checking for a connected Cloudflare zone inventory…
| Registered domain | DNS zone | Zone status | Zone type | Nameservers | SiteWatch status |
|---|
Porkbun account inventory
Connect a read-only API key to see registration expiry and auto-renew settings. Import only after reviewing the inventory.
Use a Porkbun API key with read permission only. Restrict it to the domains you want monitored and an IP allowlist when available. SiteWatch never changes domains or DNS.
Connect Porkbun
Checking for a connected Porkbun account…
| Registered domain | Registrar expiry | Account status | Auto-renew | Transfer lock | SiteWatch status |
|---|
Gandi account inventory
Preview registered domains, expiry dates, and auto-renew status before importing.
Use a Gandi Personal Access Token, scoped to the intended organization and selected domain products. Grant only view/read permissions if available; never use the deprecated API key or write/manage access. Gandi's public docs do not name the exact permission labels, so use CSV import if you cannot confirm the token is read-only. SiteWatch calls only the domain-list endpoint; it encrypts the token and refreshes inventory daily. Gandi token setup · Domain API
Connect Gandi
Checking for a connected Gandi account…
| Registered domain | Registry expiry | Account status | Auto-renew | SiteWatch status |
|---|
GoDaddy account inventory
Review registered domains, expiry, renewal, lock, nameservers, and status before importing.
Create a GoDaddy Personal Access Token with only domains.domain:read. SiteWatch calls the domain-list endpoint with GET requests only. GoDaddy endpoint and scope documentation · PAT setup. The token is encrypted here and refreshed daily; DNS and registration settings are never changed.
Connect GoDaddy
Checking for a connected GoDaddy account…
| Registered domain | Registrar expiry | Account status | Auto-renew | Transfer lock | Registrar nameservers | SiteWatch status |
|---|
| Domain | Registration | Website / HTTPS | DNS evidence | Expiry alert | Last checked | Actions |
|---|
No domain monitors yet.
Add a registered domain to check RDAP expiry, public DNS, HTTPS, and availability without setting up a website monitor.
RDAP dates can differ from registrar billing and do not confirm renewal payment. DNS and hosting results are public observations or hints; they don’t prove account ownership or origin hosting.
Domains discovered from monitored websites 0
Website-linked health context, separate from your domain-only monitors.
| Domain | Registration | Website | HTTPS certificate | DNS & hosting evidence | Last checked | Domain monitor action |
|---|
These rows come from website scan inventory. Track a domain to add independent expiry checks and set its alert timing.
Incident activity
Failures and recoveries, with a clear timeline.
Add deeper health checks in a few steps.
Your external checks already monitor the public site. Connect an agent only when you want runtime, database, plugin, or dependency details. Every site uses its own revocable token.
A connector host needs to reach the SiteWatch dashboard over HTTPS. A VPS is one option, not a requirement. Compare the hosting options.
Connect a repository for reviewed code changes.
Connect an installation, then choose one repository to prepare for future AI repair reviews. SiteWatch verifies the installation and rechecks the repository before saving it. No code changes happen from this selection.
Checking connection status…
Repository names and default branches are read using a metadata-only GitHub token.
Requires a public HTTPS SiteWatch URL and a GitHub App configured by the server operator. Disconnect removes SiteWatch’s local installation link; it does not uninstall the app from GitHub. Setup and security details.
One agent bundle for Windows, Linux, and macOS.
Recommended for broad project inventory and optional, approval-gated file repair. It requires Node 24+ on the monitored computer, but the application can be written in another language. Windows is tested locally; Linux and macOS service acceptance is pending. The monitored computer must reach your SiteWatch dashboard.
↓ Download cross-platform bundlePlatform status: Windows installer tested locally. Linux and macOS installers are included; native service validation is pending. See tested compatibility.
- Extract the bundle on the computer that runs your app.
- Run its installer with the private config file and project folder.
- Confirm the first report appears in the website details.
Other runtimes and setup details
Python quick check (place both files in a private folder outside the website root):
python python-agent.py --config-file sitewatch-agent-YOUR_SITE_ID.env --once
Continuous reporting requires a service manager. Node bundle requires Node 24+. Windows uses a limited per-user sign-in task; Linux uses systemd user services; macOS uses a LaunchAgent for the logged-in user. Database health requires an application health endpoint. For a custom application that creates its own JSON report, download the PowerShell sender on Windows or the curl sender on Linux/macOS. The transport does not collect or validate application health.
Install the SiteWatch plugin.
Reports database connectivity, PHP memory usage, runtime versions, and available plugin updates. Reports run every five minutes when WordPress cron runs.
↓ Download WordPress plugin- Add your website with backend reporting enabled.
- Install and activate the ZIP in WordPress.
- Open Settings → SiteWatch and enter the URL, site ID, and private token.
Privacy and reliable scheduling
No customer content or database credentials are transmitted. On low-traffic sites, configure a server cron job so WordPress scheduled tasks run consistently.
A simple, portable reporting contract.
Send reports more often than the missing-heartbeat threshold shown in Website settings, with room for network delays. Honor Retry-After when throttled. Keep the token in backend configuration, never in browser JavaScript.
POST https://your-dashboard.example/api/ingest/YOUR_SITE_ID
Authorization: Bearer YOUR_CONNECTOR_TOKEN
Content-Type: application/json
{
"version": 1,
"agent": "my-backend/1.0",
"checks": [
{ "name": "Database", "status": "ok", "message": "Connected" }
],
"metrics": { "memory_used_mb": 128 }
}Supported check statuses: ok, warning, error. Reports are limited to 256 KB. A missing heartbeat raises an incident after the configured grace period. A standard contract supports more languages; it does not automatically expose private source, CMS internals, hosting accounts, or native mobile applications.