{"id":28761046,"url":"https://github.com/akyriako/typesense-healthcheck","last_synced_at":"2026-05-03T14:01:12.049Z","repository":{"id":298583820,"uuid":"999636041","full_name":"akyriako/typesense-healthcheck","owner":"akyriako","description":"A lightweight Go service that reports the aggregated health status of a Typesense cluster and exposes both a JSON health-check API and a real-time Vue/Vuetify web dashboard.","archived":false,"fork":false,"pushed_at":"2026-05-02T10:34:32.000Z","size":51,"stargazers_count":1,"open_issues_count":3,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-02T12:24:25.967Z","etag":null,"topics":["golang","healthcheck","tyko","typesense","typesense-operator","vue","vuetify"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akyriako.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-10T14:52:15.000Z","updated_at":"2025-08-12T06:15:41.000Z","dependencies_parsed_at":"2025-06-11T21:56:02.445Z","dependency_job_id":"034c4e80-fbf2-4407-a960-514ed59595b4","html_url":"https://github.com/akyriako/typesense-healthcheck","commit_stats":null,"previous_names":["akyriako/typesense-healthcheck"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/akyriako/typesense-healthcheck","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akyriako%2Ftypesense-healthcheck","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akyriako%2Ftypesense-healthcheck/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akyriako%2Ftypesense-healthcheck/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akyriako%2Ftypesense-healthcheck/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akyriako","download_url":"https://codeload.github.com/akyriako/typesense-healthcheck/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akyriako%2Ftypesense-healthcheck/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32571456,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["golang","healthcheck","tyko","typesense","typesense-operator","vue","vuetify"],"created_at":"2025-06-17T06:39:31.176Z","updated_at":"2026-05-03T14:01:12.043Z","avatar_url":"https://github.com/akyriako.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# typesense-healthcheck\n\nA lightweight Go service that reports the aggregated health status of a Typesense cluster and exposes both a JSON-based API \nand a built-in web UI for visualizing node status in real time.\n\n\u003cimg width=\"1409\" height=\"948\" alt=\"image\" src=\"https://github.com/user-attachments/assets/2fd139d5-9f1b-4d3b-889b-7c9843fac15c\" /\u003e\n\n## Features\n\n### Cluster readiness \u0026 liveness:\n\n* `/livez` returns a simple `200 OK` for basic liveness probes.\n* `/readyz` returns a detailed JSON report of cluster's **and** each node’s health, e.g. :\n\n```json\n{\n    \"cluster_status\": \"OK\",\n    \"cluster_health\": true,\n    \"nodes_health_check\": {\n        \"c-kind-2-sts-0.c-kind-2-sts-svc\": {\n            \"node_status\": {\n                \"committed_index\": 6813,\n                \"queued_writes\": 0,\n                \"state\": \"FOLLOWER\"\n            },\n            \"node_health\": {\n                \"ok\": true\n            }\n        },\n        \"c-kind-2-sts-1.c-kind-2-sts-svc\": {\n            \"node_status\": {\n                \"committed_index\": 6813,\n                \"queued_writes\": 0,\n                \"state\": \"FOLLOWER\"\n            },\n            \"node_health\": {\n                \"ok\": true\n            }\n        },\n        \"c-kind-2-sts-2.c-kind-2-sts-svc\": {\n            \"node_status\": {\n                \"committed_index\": 6813,\n                \"queued_writes\": 0,\n                \"state\": \"FOLLOWER\"\n            },\n            \"node_health\": {\n                \"ok\": true\n            }\n        },\n        \"c-kind-2-sts-3.c-kind-2-sts-svc\": {\n            \"node_status\": {\n                \"committed_index\": 6813,\n                \"queued_writes\": 0,\n                \"state\": \"LEADER\"\n            },\n            \"node_health\": {\n                \"ok\": true\n            }\n        },\n        \"c-kind-2-sts-4.c-kind-2-sts-svc\": {\n            \"node_status\": {\n                \"committed_index\": 6813,\n                \"queued_writes\": 0,\n                \"state\": \"FOLLOWER\"\n            },\n            \"node_health\": {\n                \"ok\": true\n            }\n        },\n        \"c-kind-2-sts-5.c-kind-2-sts-svc\": {\n            \"node_status\": {\n                \"committed_index\": 6813,\n                \"queued_writes\": 0,\n                \"state\": \"FOLLOWER\"\n            },\n            \"node_health\": {\n                \"ok\": true\n            }\n        },\n        \"c-kind-2-sts-6.c-kind-2-sts-svc\": {\n            \"node_status\": {\n                \"committed_index\": 6813,\n                \"queued_writes\": 0,\n                \"state\": \"FOLLOWER\"\n            },\n            \"node_health\": {\n                \"ok\": true\n            }\n        }\n    }\n}\n```\n\n### Web UI\n\nAn interactive single-page Vue.js + Vuetify application:\n\n* Auto-refresh every 3 seconds.\n* Color-coded status indicators per node (Color-blind friendly)\n\n## Configuration \n\n| Env Var                  | Type   | Default                                                                                      | Required |\n|--------------------------|--------|----------------------------------------------------------------------------------------------|----------|\n| `LOG_LEVEL`              | `int`  | `0`                                                                                          | No       |\n| `CLUSTER_NAMESPACE`      | `string` | `default`                                                                                   | No       |\n| `TYPESENSE_API_KEY`      | `string` | —                                                                                            | Yes      |\n| `TYPESENSE_PROTOCOL`     | `string` | `http`                                                                                       | No       |\n| `TYPESENSE_API_PORT`     | `uint`   | `8108`                                                                                       | No       |\n| `TYPESENSE_PEERING_PORT` | `uint`   | `8107`                                                                                       | No       |\n| `HEALTHCHECK_PORT`       | `uint`   | `8808`                                                                                       | No       |\n| `TYPESENSE_NODES`        | `string` | `/usr/share/typesense/nodes`                                                                 | No       |\n\n\u003e [!IMPORTANT]\n\u003e Although this lightweight server is designed to run as a sidecar in the same Pod as your Typesense nodes deployed by [TyKO](https://github.com/akyriako/typesense-operator),\n\u003e you can monitor any Typesense Cluster as long as you provide a reachable path using `TYPESENSE_NODES` variable (e.g. by running this service as a docker container and\n\u003e mounting your nodes list file in it) \n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakyriako%2Ftypesense-healthcheck","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakyriako%2Ftypesense-healthcheck","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakyriako%2Ftypesense-healthcheck/lists"}