67 lines
2.2 KiB
HTML
67 lines
2.2 KiB
HTML
{{define "title"}}Service Status — Ridgway Systems{{end}}
|
|
{{define "meta-desc"}}Live status of services running on the Ridgway Systems homelab.{{end}}
|
|
|
|
{{define "content"}}
|
|
<div class="page-header">
|
|
<h1>Service Status</h1>
|
|
{{if .LastChecked}}
|
|
<p class="page-desc">Last updated: <time>{{.LastChecked}}</time></p>
|
|
{{end}}
|
|
</div>
|
|
|
|
{{if .PlannedOutages}}
|
|
<div class="planned-outages">
|
|
<h2>Planned Maintenance</h2>
|
|
<ul class="outage-list">
|
|
{{range .PlannedOutages}}
|
|
<li class="outage-item">
|
|
<span class="outage-indicator" aria-hidden="true"></span>
|
|
<a href="{{.HTMLURL}}" class="outage-link" target="_blank" rel="noopener">{{.Title}}</a>
|
|
<span class="outage-num">#{{.Number}}</span>
|
|
</li>
|
|
{{end}}
|
|
</ul>
|
|
</div>
|
|
{{end}}
|
|
|
|
{{if .Page.Services}}
|
|
<ul class="status-list">
|
|
{{range .Page.Services}}
|
|
{{$h := index $.History .Name}}
|
|
<li class="status-item status-{{.Status}}">
|
|
<div class="status-top">
|
|
<span class="status-indicator" aria-label="{{.Status}}"></span>
|
|
<div class="status-info">
|
|
<span class="status-name">{{.Name}}</span>
|
|
{{if .Description}}<span class="status-desc">{{.Description}}</span>{{end}}
|
|
{{if .Note}}<span class="status-note">{{.Note}}</span>{{end}}
|
|
</div>
|
|
<span class="status-badge status-badge-{{.Status}}">{{.Status}}</span>
|
|
</div>
|
|
<div class="uptime-bar-row">
|
|
<div class="uptime-bar">
|
|
{{range $h.Blocks}}
|
|
<span class="uptime-block uptime-block-{{.Status}}" title="{{.Date}}"></span>
|
|
{{end}}
|
|
</div>
|
|
{{if ge $h.UptimePct 0.0}}
|
|
<span class="uptime-pct">{{printf "%.1f" $h.UptimePct}}%</span>
|
|
{{else}}
|
|
<span class="uptime-pct uptime-pct-none">no data</span>
|
|
{{end}}
|
|
</div>
|
|
</li>
|
|
{{end}}
|
|
</ul>
|
|
{{else}}
|
|
<p class="empty-state">No services configured.</p>
|
|
{{end}}
|
|
|
|
<div class="status-legend">
|
|
<span class="status-badge status-badge-up">up</span> operational
|
|
<span class="status-badge status-badge-degraded">degraded</span> reduced capacity
|
|
<span class="status-badge status-badge-down">down</span> unavailable
|
|
<span class="status-badge status-badge-unknown">unknown</span> not checked
|
|
</div>
|
|
{{end}}
|