diff --git a/flake.nix b/flake.nix index 09780b9..49055ed 100644 --- a/flake.nix +++ b/flake.nix @@ -1,6 +1,6 @@ # flake for blakes nixos config # define new devices in outputs -# generation: 364, timestamp: 2025-10-12 14:54:50 +# generation: 365, timestamp: 2025-10-12 15:04:31 { description = "blakes nix config"; inputs = { diff --git a/modules/homelab/services/glance/default.nix b/modules/homelab/services/glance/default.nix index 4142861..4fc5d8c 100644 --- a/modules/homelab/services/glance/default.nix +++ b/modules/homelab/services/glance/default.nix @@ -151,15 +151,10 @@ in } { type = "custom-api"; - title = "minecraft recpro"; + title = "recpro"; + url = "https://api.mcstatus.io/v2/status/java/mc.recoil.pro"; cache = "5s"; - allow-insecure = true; - url = "\${CRAFTY_URL}/api/v2/servers/\${CRAFTY_SERVER_ID}/stats"; - headers = { - Authorization = "Bearer \${CRAFTY_API_TOKEN}"; - Accept = "application/json"; - }; - template = "\n\n\n{{ $displayMOTD := true }}\n\n\n\n{{ $is_running := .JSON.Bool \"data.running\" }}\n{{ $online_players := .JSON.Int \"data.online\" | formatNumber }}\n{{ $max_players := .JSON.Int \"data.max\" | formatNumber }}\n{{ $name := .JSON.String \"data.world_name\" }}\n{{ $size := .JSON.String \"data.world_size\" }}\n{{ $version := .JSON.String \"data.version\" }}\n{{ $icon := .JSON.String \"data.icon\" }}\n{{ $server_ip := .JSON.String \"data.server_id.server_ip\" }}\n{{ $server_port := .JSON.String \"data.server_id.server_port\" }}\n{{ $motd := .JSON.String \"data.desc\" }}\n\n{{ $server_addr := \"\" }}\n{{ if and ($is_running) (eq $server_ip \"127.0.0.1\") }}\n {{ $server_addr = printf \"%s:%s\" (replaceMatches \"https?://\" \"\" \"\${CRAFTY_URL}\") $server_port }}\n{{ else if $is_running }}\n {{ $server_addr = printf \"%s:%s\" $server_ip $server_port }}\n{{ end }}\n\n{{ $starting := false }}\n{{ if and ($is_running) (eq $max_players \"0\") (eq $version \"False\") }}\n {{ $starting = true }}\n{{ end }}\n\n\n{{ $updating := .JSON.Bool \"data.updating\" }}\n{{ $importing := .JSON.Bool \"data.importing\" }}\n{{ $crashed := .JSON.Bool \"data.crashed\" }}\n\n
\n \n
\n {{ if eq $icon \"\" }}\n \"Server\n {{ else }}\n \"Server\n {{ end }}\n
\n\n \n
\n \n
\n \n {{ $name }}\n \n\n {{ if and ($is_running) (not $starting) (not (eq $server_addr \"\")) }}\n
\n \n {{ $server_addr }}\n \n
\n {{ end }}\n
\n\n \n {{ if and ($is_running) (not $starting) }}\n {{ if and (not (eq $motd \"\")) ($displayMOTD) }}\n
\n {{ replaceMatches \"§.\" \"\" $motd }}\n
\n {{ end }}\n\n
\n {{ $version }} - {{ $online_players }}/{{ $max_players }} players - {{ $size }}\n
\n\n \n {{ else if $starting }}\n
Server is starting up..
\n {{ else if $importing }}\n
Server is being imported..
\n {{ else if $updating }}\n
Server is being updated..
\n {{ else if $crashed }}\n
Server has crashed!
\n {{ else }}\n
Server is offline
\n {{ end }}\n
\n
"; + template = "
\n
\n {{ if .JSON.Bool \"online\" }}\n \n {{ else }}\n \n \n \n {{ end }}\n
\n\n
\n \n {{ .JSON.String \"host\" }}\n {{ if .JSON.Bool \"online\" }}\n \n {{ else }}\n \n {{ end }}\n \n\n \n
\n
"; } ]; } diff --git a/modules/homelab/services/glance/test.nix b/modules/homelab/services/glance/test.nix index 2a59d73..4089563 100644 --- a/modules/homelab/services/glance/test.nix +++ b/modules/homelab/services/glance/test.nix @@ -1,14 +1,9 @@ [ { type = "custom-api"; - title = "Crafty Controller — Minecraft Server"; - cache = "5s"; - allow-insecure = true; - url = "\${CRAFTY_URL}/api/v2/servers/\${CRAFTY_SERVER_ID}/stats"; - headers = { - Authorization = "Bearer \${CRAFTY_API_TOKEN}"; - Accept = "application/json"; - }; - template = "\n\n\n{{ $displayMOTD := true }}\n\n\n\n{{ $is_running := .JSON.Bool \"data.running\" }}\n{{ $online_players := .JSON.Int \"data.online\" | formatNumber }}\n{{ $max_players := .JSON.Int \"data.max\" | formatNumber }}\n{{ $name := .JSON.String \"data.world_name\" }}\n{{ $size := .JSON.String \"data.world_size\" }}\n{{ $version := .JSON.String \"data.version\" }}\n{{ $icon := .JSON.String \"data.icon\" }}\n{{ $server_ip := .JSON.String \"data.server_id.server_ip\" }}\n{{ $server_port := .JSON.String \"data.server_id.server_port\" }}\n{{ $motd := .JSON.String \"data.desc\" }}\n\n{{ $server_addr := \"\" }}\n{{ if and ($is_running) (eq $server_ip \"127.0.0.1\") }}\n {{ $server_addr = printf \"%s:%s\" (replaceMatches \"https?://\" \"\" \"\${CRAFTY_URL}\") $server_port }}\n{{ else if $is_running }}\n {{ $server_addr = printf \"%s:%s\" $server_ip $server_port }}\n{{ end }}\n\n{{ $starting := false }}\n{{ if and ($is_running) (eq $max_players \"0\") (eq $version \"False\") }}\n {{ $starting = true }}\n{{ end }}\n\n\n{{ $updating := .JSON.Bool \"data.updating\" }}\n{{ $importing := .JSON.Bool \"data.importing\" }}\n{{ $crashed := .JSON.Bool \"data.crashed\" }}\n\n
\n \n
\n {{ if eq $icon \"\" }}\n \"Server\n {{ else }}\n \"Server\n {{ end }}\n
\n\n \n
\n \n
\n \n {{ $name }}\n \n\n {{ if and ($is_running) (not $starting) (not (eq $server_addr \"\")) }}\n
\n \n {{ $server_addr }}\n \n
\n {{ end }}\n
\n\n \n {{ if and ($is_running) (not $starting) }}\n {{ if and (not (eq $motd \"\")) ($displayMOTD) }}\n
\n {{ replaceMatches \"§.\" \"\" $motd }}\n
\n {{ end }}\n\n
\n {{ $version }} - {{ $online_players }}/{{ $max_players }} players - {{ $size }}\n
\n\n \n {{ else if $starting }}\n
Server is starting up..
\n {{ else if $importing }}\n
Server is being imported..
\n {{ else if $updating }}\n
Server is being updated..
\n {{ else if $crashed }}\n
Server has crashed!
\n {{ else }}\n
Server is offline
\n {{ end }}\n
\n
"; + title = "Minecraft"; + url = "https://api.mcstatus.io/v2/status/java/\${MC_SERVER_URL}"; + cache = "30s"; + template = "
\n
\n {{ if .JSON.Bool \"online\" }}\n \n {{ else }}\n \n \n \n {{ end }}\n
\n\n
\n \n {{ .JSON.String \"host\" }}\n {{ if .JSON.Bool \"online\" }}\n \n {{ else }}\n \n {{ end }}\n \n\n \n
\n
"; } ] diff --git a/modules/homelab/services/glance/yml.yaml b/modules/homelab/services/glance/yml.yaml index 41a106c..0f625ab 100644 --- a/modules/homelab/services/glance/yml.yaml +++ b/modules/homelab/services/glance/yml.yaml @@ -1,97 +1,67 @@ - type: custom-api - title: Crafty Controller — Minecraft Server - cache: 5s - allow-insecure: true - url: ${CRAFTY_URL}/api/v2/servers/${CRAFTY_SERVER_ID}/stats - headers: - Authorization: Bearer ${CRAFTY_API_TOKEN} - Accept: application/json + title: Minecraft + url: https://api.mcstatus.io/v2/status/java/${MC_SERVER_URL} + cache: 30s template: | - - - - {{ $displayMOTD := true }} - - - - {{ $is_running := .JSON.Bool "data.running" }} - {{ $online_players := .JSON.Int "data.online" | formatNumber }} - {{ $max_players := .JSON.Int "data.max" | formatNumber }} - {{ $name := .JSON.String "data.world_name" }} - {{ $size := .JSON.String "data.world_size" }} - {{ $version := .JSON.String "data.version" }} - {{ $icon := .JSON.String "data.icon" }} - {{ $server_ip := .JSON.String "data.server_id.server_ip" }} - {{ $server_port := .JSON.String "data.server_id.server_port" }} - {{ $motd := .JSON.String "data.desc" }} - - {{ $server_addr := "" }} - {{ if and ($is_running) (eq $server_ip "127.0.0.1") }} - {{ $server_addr = printf "%s:%s" (replaceMatches "https?://" "" "${CRAFTY_URL}") $server_port }} - {{ else if $is_running }} - {{ $server_addr = printf "%s:%s" $server_ip $server_port }} - {{ end }} - - {{ $starting := false }} - {{ if and ($is_running) (eq $max_players "0") (eq $version "False") }} - {{ $starting = true }} - {{ end }} - - - {{ $updating := .JSON.Bool "data.updating" }} - {{ $importing := .JSON.Bool "data.importing" }} - {{ $crashed := .JSON.Bool "data.crashed" }} -
- -
- {{ if eq $icon "" }} - Server icon +
+ {{ if .JSON.Bool "online" }} + {{ else }} - Server icon + + + {{ end }}
- -
- -
- - {{ $name }} - - - {{ if and ($is_running) (not $starting) (not (eq $server_addr "")) }} -
- - {{ $server_addr }} - -
+
+ + {{ .JSON.String "host" }} + {{ if .JSON.Bool "online" }} + + {{ else }} + {{ end }} -
+ - - {{ if and ($is_running) (not $starting) }} - {{ if and (not (eq $motd "")) ($displayMOTD) }} -
- {{ replaceMatches "§." "" $motd }} +
    +
  • + {{ if .JSON.Bool "online" }} + {{ .JSON.String "version.name_clean" }} + {{ else }} + Offline + {{ end }} +
  • + {{ if .JSON.Bool "online" }} +
  • +
    + {{ range .JSON.Array "players.list" }}{{ .String "name_clean" }}
    {{ end }}
    +

    + + + + {{ .JSON.Int "players.online" | formatNumber }}/{{ .JSON.Int "players.max" | formatNumber }} players +

    +
  • + {{ else }} +
  • +

    + + + + 0 players +

    +
  • {{ end }} - -
    - {{ $version }} - {{ $online_players }}/{{ $max_players }} players - {{ $size }} -
    - - - {{ else if $starting }} -
    Server is starting up..
    - {{ else if $importing }} -
    Server is being imported..
    - {{ else if $updating }} -
    Server is being updated..
    - {{ else if $crashed }} -
    Server has crashed!
    - {{ else }} -
    Server is offline
    - {{ end }} +