In this guide
- The recommended layout
- Uptime Monitor — your services at a glance
- CI/CD pipeline status from GitHub Actions
- Server health metrics via custom plugin
- Incident alerts from PagerDuty or Opsgenie
- Dependency releases — stay ahead of CVEs
- Command palette shortcuts for DevOps
- Automations for incident response
The recommended layout
For a DevOps/SRE workflow, a three-column approach works best: the left column shows real-time status (things that are broken or about to break), the center shows pipeline and deployment health, and the right column shows context and reference feeds.
| Left — status | Center — pipelines | Right — context |
|---|---|---|
| Uptime Monitor (production) | GitHub Actions (main repo) | GitHub Releases |
| Uptime Monitor (staging) | GitHub Actions (infra repo) | Hacker News |
| PagerDuty incidents | Server health (custom) | Pomodoro |
Create a new dashboard (the + button in the dashboard tab bar), name it "Ops", then add each widget from the widget picker. Drag to position and resize by pulling the bottom-right corner of each widget card.
Ctrl+Alt+] to cycle between your Ops and Dev dashboards instantly — no mouse needed.
Uptime Monitor — your services at a glance
The Uptime Monitor widget sends HEAD requests to a list of URLs you configure and shows a colour-coded status indicator with response time for each endpoint:
- 🟢 Green — 2xx status within 8 seconds
- 🟡 Amber — response time above 1000ms (slow but alive)
- 🔴 Red — error, timeout, or non-2xx status
For DevOps, split your monitoring into two separate Uptime widgets — one for production, one for staging/internal:
| Production widget | Staging / internal widget |
|---|---|
https://yourapp.com | https://staging.yourapp.com |
https://api.yourapp.com/health | http://internal.corp:8080/ping |
https://cdn.yourapp.com | http://localhost:3000 |
https://auth.yourapp.com/.well-known/openid-configuration | https://grafana.internal.corp |
Because requests come from your browser, private staging servers behind your VPN, internal services on private IPs, and even localhost ports all work — no firewall exceptions or external monitoring agents needed.
CI/CD pipeline status from GitHub Actions
Use a custom plugin widget to pull the latest GitHub Actions workflow runs. Point it at:
https://api.github.com/repos/your-org/your-repo/actions/runs?per_page=5
In the field mapping, extract these values:
| JSON path | Display label | Notes |
|---|---|---|
workflow_runs[0].name | Workflow | The workflow name (e.g., "CI", "Deploy") |
workflow_runs[0].status | Status | completed, in_progress, queued |
workflow_runs[0].conclusion | Result | success, failure, cancelled |
workflow_runs[0].head_branch | Branch | Which branch triggered the run |
workflow_runs[0].created_at | Started | ISO timestamp of the run |
Set threshold colors so failure turns the value red and success turns it green. Now every new tab shows you whether the last deploy succeeded or failed — no need to open the Actions tab on GitHub.
Server health metrics via custom plugin
If you expose a health or metrics endpoint from your servers (most production services do), you can surface key numbers directly on your new tab. Create a custom plugin pointed at your health endpoint:
https://api.yourapp.com/internal/health
Map fields like:
| Metric | JSON path | Threshold |
|---|---|---|
| CPU usage | cpu_percent | Amber > 70%, Red > 90% |
| Memory usage | memory_percent | Amber > 75%, Red > 90% |
| Active connections | active_connections | Red > 500 |
| Queue depth | queue_depth | Amber > 100, Red > 500 |
| Disk usage | disk_percent | Red > 85% |
Enable sparklines in the widget settings to see trends over time. A slowly climbing memory percentage is instantly visible as a creeping sparkline — much easier to spot than a single number.
Incident alerts from PagerDuty or Opsgenie
Create a custom plugin widget for your incident management platform. For PagerDuty, point the widget at:
https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged
Add your API key as a header (Authorization: Token token=YOUR_KEY) in the widget's advanced settings. Map the fields:
| JSON path | Display |
|---|---|
incidents[0].title | Incident title |
incidents[0].urgency | Severity (high/low) |
incidents[0].status | Status (triggered/acknowledged) |
incidents[0].created_at | When it fired |
incidents.length | Total open incidents |
Set high urgency to render in red. When the widget shows zero incidents, you know you're clear — visible at a glance every time you open a tab, without checking your phone.
Dependency releases — stay ahead of CVEs
The GitHub Releases widget tracks the latest release tags for repositories you depend on. For infrastructure engineers, the relevant repos are different from application developers:
hashicorp/terraformkubernetes/kubernetesdocker/composegrafana/grafanaprometheus/prometheusargoproj/argo-cdaws/aws-cli
When a new version ships, the widget shows the tag and release date. Click to open the release notes directly. Staying on top of infrastructure tool releases is critical for security patches — this widget makes it passive instead of active.
Command palette shortcuts for DevOps
Beyond the widgets, the command palette has commands that DevOps engineers reach for constantly:
| Command | What it does |
|---|---|
/jwt <token> | Decode a JWT — check expiry, issuer, and claims without jwt.io |
/hash <text> | SHA-256 hash — verify checksums for downloaded binaries |
/uuid | Generate a UUID v4 and copy to clipboard |
/json <json> | Pretty-print and validate JSON — paste API responses directly |
/encode <text> | Base64 encode — useful for Kubernetes secrets |
/decode <text> | Base64 decode — inspect encoded config values |
/ip | Show your current public IP address |
/timestamp | Current Unix timestamp — copy to clipboard |
All commands run locally in the browser. The JWT decoder and base64 tools are especially useful when debugging Kubernetes secrets or API gateway tokens — paste the value straight from kubectl output and decode it instantly.
Automations for incident response
Pinodock's automation engine can wire up URL aliases as incident response shortcuts. Set up aliases in Settings → Shortcuts:
| Alias | URL | Use case |
|---|---|---|
pd | https://your-org.pagerduty.com/incidents | Jump to PagerDuty incidents |
graf | https://grafana.internal.corp | Open Grafana dashboards |
logs | https://app.datadoghq.com/logs | Open Datadog log explorer |
aws | https://console.aws.amazon.com | Open AWS Console |
k8s | https://your-cluster.k8s.internal/dashboard | Open Kubernetes dashboard |
During an incident, type the alias into the command palette and you're there in one keystroke. No bookmarking, no searching, no muscle-memory URLs. This shaves seconds off every context switch during a high-pressure incident response.
The DevOps dashboard turns your new tab from dead space into a situational awareness tool. When everything is green, you see it instantly and move on. When something is red, you know before Slack tells you. Set it up once and it runs passively — the best kind of monitoring.
→ Build a custom widget for your own API metrics
→ Threshold colors and sparklines for live data