title: "Vargo" pages: - name: "Vargo Dashboard" columns: - size: small widgets: - type: calendar first-day-of-week: monday - type: clock timezone: "timezone" hour-format: 12h show-seconds: false show-date: true - type: markets markets: - symbol: BTC name: Bitcoin - symbol: ETH name: Ethereum - symbol: SOL name: Solana - symbol: DOGE name: DogeCoin - type: reddit title: "Reddit" show-flairs: true subreddit: name-of-your-subreddit limit: 5 collapse-after: 3 - size: full widgets: - type: docker-containers containers: : name: Name 1 description: Desc 1 icon: simple-icons-icon hide: false : name: Name 2 url: Url description: Desc 2 icon: simple-icons-icon : hide: true : hide: true : name: Name 5 url: Url description: Desc 5 icon: simple-icons-icon : name: Name 6 url: url description: Desc 6 icon: simple-icons-icon : hide: true : name: Name 8 url: url description: Desc 8 icon: simple-icons-icon : name: Name 9 url: url description: Desc 9 icon: simple-icons-icon : name: Name 10 url: url description: Desc 10 icon: simple-icons-icon : name: Name 11 url: url description: Desc 11 icon: simple-icons-icon : hide: true sort-by: cpu limit: 8 refresh-interval: 15 - type: monitor cache: 5m # HTTP check every 5 minutes title: "Services" sites: - title: Service_1 url: site-url timeout: 12s icon: simple-icons-icon - title: Service_2 url: site-url timeout: 12s icon: simple-icons-icon - title: Service_3 url: site-url timeout: 12s icon: simple-icons-icon - title: Service_4 url: site-url timeout: 12s icon: simple-icons-icon - title: Service_5 url: site-url timeout: 12s icon: simple-icons-icon - title: Service_6 url: site-url timeout: 12s icon: simple-icons-icon - title: Service_7 url: site-url timeout: 12s icon: simple-icons-icon - type: server-stats title: "Server Metrics" servers: - type: remote name: "Vargo" url: glance-agent-url timeout: 12s refresh-interval: 10 - type: custom-api cache: 1h title: Internet Speed title-url: title-url url: url headers: Authorization: Bearer Accept: application/json subrequests: stats: url: https://your.speedtest.com/api/v1/stats headers: Authorization: Bearer Accept: application/json options: showPercentageDiff: true template: | {{ $showPercentage := .Options.BoolOr "showPercentageDiff" true }} {{ $stats := .Subrequest "stats" }}
{{ $downloadChange := percentChange ($stats.JSON.Float "data.download.avg_bits") (.JSON.Float "data.download_bits") }} {{ if $showPercentage }}
{{ $downloadChange | printf "%+.1f%%" }} {{ if gt $downloadChange 0.0 }} {{ else if lt $downloadChange 0.0 }} {{ end }}
{{ end }}
{{ .JSON.Float "data.download_bits" | mul 0.000001 | printf "%.1f" }}
DOWNLOAD
{{ $uploadChange := percentChange ($stats.JSON.Float "data.upload.avg_bits") (.JSON.Float "data.upload_bits") }} {{ if $showPercentage }}
{{ $uploadChange | printf "%+.1f%%" }} {{ if gt $uploadChange 0.0 }} {{ else if lt $uploadChange 0.0 }} {{ end }}
{{ end }}
{{ .JSON.Float "data.upload_bits" | mul 0.000001 | printf "%.1f" }}
UPLOAD
{{ $pingChange := percentChange ($stats.JSON.Float "data.ping.avg") (.JSON.Float "data.ping") }} {{ if $showPercentage }}
{{ $pingChange | printf "%+.1f%%" }} {{ if lt $pingChange 0.0 }} {{ else if gt $pingChange 0.0 }} {{ end }}
{{ end }}
{{ .JSON.Float "data.ping" | printf "%.0f ms" }}
PING
- type: custom-api title: Nearby Aircraft cache: 1m url: "https://opensky-network.org/api/states/all?lamin=min-latitude&lomin=min-longitude&lamax=max-latitutde&lomax=max-longitude" template: |-
{{ $states := .JSON.Array "states" }} {{ $statesCount := len $states }}
AIRCRAFT NEARBY: {{ $statesCount }}
{{ if gt $statesCount 0 }} {{ $plane := index $states 0 }} {{ $callsign := $plane.String "1" }} {{ $icao24 := $plane.String "0" }} {{ $origin := $plane.String "2" }} {{ $onGround := $plane.Bool "8" }} {{ $altitude := $plane.Float "7" }} {{ $speed := $plane.Float "9" }}
{{ if ne $callsign "" }}{{ $callsign }}{{ else }}{{ $icao24 }}{{ end }}
CALLSIGN
{{ if ne $origin "" }}{{ $origin }}{{ else }}-{{ end }}
ORIGIN
{{ if and (not $onGround) (ne $altitude 0.0) }}{{ printf "%.0f" $altitude }}m{{ else }}-{{ end }}
ALTITUDE
{{ if and (not $onGround) (ne $speed 0.0) }}{{ printf "%.0f" $speed }}m/s{{ else }}-{{ end }}
SPEED
{{ end }}
- type: group layout: horizontal widgets: - type: custom-api title: "F1 • Next Race" cache: 1h url: "https://f1api.dev/api/current/next?timezone={TIMEZONE}" template: |- {{ $img := "https://cdn-icons-png.flaticon.com/512/668/668087.png" }} {{ $race := .JSON.String "race.0.raceName" }} {{ if not $race }}{{ $race = (printf "Round %s" (.JSON.String "round")) }}{{ end }} {{ $date := .JSON.String "race.0.schedule.race.date" }} {{ $time := .JSON.String "race.0.schedule.race.time" }} {{ $cname := .JSON.String "race.0.circuit.circuitName" }} {{ $city := .JSON.String "race.0.circuit.city" }} {{ $country := .JSON.String "race.0.circuit.country" }}
F1
{{ $race }}
{{ $cname }}
{{ $city }}, {{ $country }}
Race: {{ $date }} {{ if $time }}• {{ $time }}{{ end }}
FP1: {{ .JSON.String "race.0.schedule.fp1.date" }} {{ if .JSON.String "race.0.schedule.fp1.time" }}• {{ .JSON.String "race.0.schedule.fp1.time" }}{{ end }}
Qualy: {{ .JSON.String "race.0.schedule.qualy.date" }} {{ if .JSON.String "race.0.schedule.qualy.time" }}• {{ .JSON.String "race.0.schedule.qualy.time" }}{{ end }}
- type: custom-api title: "F1 • Last Race Result" cache: 12h url: "https://f1api.dev/api/current/last?timezone={TIMEZONE}" template: |- {{ $img := "https://cdn-icons-png.flaticon.com/512/668/668087.png" }} {{ $name := .JSON.String "race.0.raceName" }} {{ $cname := .JSON.String "race.0.circuit.circuitName" }} {{ $city := .JSON.String "race.0.circuit.city" }} {{ $country := .JSON.String "race.0.circuit.country" }} {{ $date := .JSON.String "race.0.schedule.race.date" }} {{ $winName := .JSON.String "race.0.winner.name" }} {{ $winSur := .JSON.String "race.0.winner.surname" }} {{ $winShort := .JSON.String "race.0.winner.shortName" }} {{ $team := .JSON.String "race.0.teamWinner.teamName" }} {{ $laps := .JSON.String "race.0.laps" }}
Winner
{{ $name }}
{{ $cname }}
{{ $city }}, {{ $country }}
Race: {{ $date }} • Laps: {{ $laps }}
Winner
{{ if $winShort }}{{ $winShort }} · {{ end }}{{ $winName }} {{ $winSur }}
{{ $team }}
- size: small widgets: - type: weather location: Location units: metric hour-format: 12h - type: custom-api title: Air Quality cache: 10m url: "https://api.waqi.info/feed/geo:coordinates/?token=generate-token-from-site" template: |- {{ $aqi := printf "%03s" (.JSON.String "data.aqi") }} {{ $aqiraw := .JSON.String "data.aqi" }} {{ $updated := .JSON.String "data.time.iso" }} {{ $humidity := .JSON.Float "data.iaqi.h.v" }} {{ $ozone := .JSON.String "data.iaqi.o3.v" }} {{ $pm25 := .JSON.String "data.iaqi.pm25.v" }} {{ $pressure := .JSON.Float "data.iaqi.p.v" }}
{{ if le $aqi "050" }}
Good air quality
{{ else if le $aqi "100" }}
Moderate air quality
{{ else }}
Bad air quality
{{ end }}
AQI: {{ $aqiraw }}
{{ printf "%.1f" $humidity }}%
HUMIDITY
{{ $ozone }} μg/m³
OZONE
{{ $pm25 }} μg/m³
PM2.5
{{ printf "%.1f" $pressure }} hPa
PRESSURE
Last Updated at {{ slice $updated 11 16 }}
- type: custom-api title: Random Capybara cache: 10m url: "https://animals.maxz.dev/api/capybara/random" template: |- {{ $img := .JSON.String "image" }} {{ if $img }} {{ else }}
No image in API response
{{ end }} - type: releases show-source-icon: true token: Github_TOKEN repositories: - nextcloud/server - dani-garcia/vaultwarden - portainer/portainer - fastapi/fastapi limit: 6 refresh-interval: 43200 # 12 hours - type: to-do title: "Todo" items: - text: "Add more services to Monitor" done: false - text: "Tune server-stats agent" done: false