Web UI¶
Uptimer includes a web-based dashboard for monitoring services.
Quick Start¶
The server starts at http://127.0.0.1:8000 by default.
Login¶
Default credentials:
- Username:
admin - Password:
admin
Change Default Credentials
Always change the default credentials in production. See Configuration.
Features¶
Dashboard¶
The dashboard provides:
- Overview of monitored services
- Quick check for ad-hoc URL testing
- Service status at a glance
Quick Check¶
Test any URL directly from the dashboard:
- Enter a URL in the Quick Check form
- Click "Check"
- See the result with status, response time, and details
REST API¶
The web UI exposes a REST API for programmatic access. All endpoints require authentication.
Monitors¶
# List all monitors
curl -b cookies.txt "http://localhost:8000/api/monitors"
# List monitors filtered by tag
curl -b cookies.txt "http://localhost:8000/api/monitors?tag=production"
# List all tags
curl -b cookies.txt "http://localhost:8000/api/monitors/tags"
# Create a monitor
curl -X POST -b cookies.txt "http://localhost:8000/api/monitors" \
-H "Content-Type: application/json" \
-d '{
"name": "My Service",
"url": "https://example.com",
"pipeline": [{"type": "http"}],
"tags": ["production", "api"],
"interval": 60
}'
# Get a monitor
curl -b cookies.txt "http://localhost:8000/api/monitors/{id}"
# Update a monitor
curl -X PUT -b cookies.txt "http://localhost:8000/api/monitors/{id}" \
-H "Content-Type: application/json" \
-d '{"tags": ["production", "api", "critical"]}'
# Delete a monitor
curl -X DELETE -b cookies.txt "http://localhost:8000/api/monitors/{id}"
# Run a check
curl -X POST -b cookies.txt "http://localhost:8000/api/monitors/{id}/check"
# Get check results
curl -b cookies.txt "http://localhost:8000/api/monitors/{id}/results?limit=100"
Monitor Fields¶
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
name |
string | Yes | - | Display name (1-100 chars) |
url |
string | Yes | - | URL to monitor |
pipeline |
array | No | [{"type": "http"}] |
Array of stage configurations |
interval |
int | No | 30 |
Check interval in seconds (min 10) |
schedule |
string | No | null |
Cron schedule (alternative to interval) |
enabled |
bool | No | true |
Whether monitor is active |
tags |
list | No | [] |
Tags for grouping/filtering |
Quick Check¶
# Check a URL (requires authentication)
curl -b cookies.txt "http://localhost:8000/api/check?url=google.com"
Response:
{
"status": "up",
"url": "https://google.com",
"message": "200",
"elapsed_ms": 934.67,
"status_code": 200,
"final_url": "https://www.google.com/"
}
CLI Options¶
| Option | Short | Default | Description |
|---|---|---|---|
--host |
-h |
127.0.0.1 |
Host to bind to |
--port |
-p |
8000 |
Port to bind to |
--reload |
-r |
false |
Enable auto-reload for development |