{"id":18171367,"url":"https://github.com/buzzer13/healthpose","last_synced_at":"2025-04-07T08:35:51.733Z","repository":{"id":260210239,"uuid":"880614611","full_name":"buzzer13/healthpose","owner":"buzzer13","description":"Exposes HTTP health check endpoints for services that don't provide them natively","archived":false,"fork":false,"pushed_at":"2025-03-18T22:57:30.000Z","size":48,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T23:30:49.450Z","etag":null,"topics":["golang","healthcheck","server"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/buzzer13.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","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}},"created_at":"2024-10-30T03:00:01.000Z","updated_at":"2025-03-18T22:56:39.000Z","dependencies_parsed_at":"2024-12-19T03:24:54.959Z","dependency_job_id":"3218993a-ef09-4429-baf5-70a8d28d999f","html_url":"https://github.com/buzzer13/healthpose","commit_stats":{"total_commits":8,"total_committers":1,"mean_commits":8.0,"dds":0.0,"last_synced_commit":"928aae5f41f0dac70510bfa1b24371a3f843567f"},"previous_names":["buzzer13/healthpose"],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buzzer13%2Fhealthpose","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buzzer13%2Fhealthpose/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buzzer13%2Fhealthpose/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/buzzer13%2Fhealthpose/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/buzzer13","download_url":"https://codeload.github.com/buzzer13/healthpose/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247622261,"owners_count":20968561,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","server"],"created_at":"2024-11-02T15:08:46.935Z","updated_at":"2025-04-07T08:35:51.700Z","avatar_url":"https://github.com/buzzer13.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Healthpose\n\n[![latest release](https://img.shields.io/github/v/release/buzzer13/healthpose)](https://github.com/buzzer13/healthpose/releases)\n\nThis project provides an HTTP server that performs health checks to the specified services and exposes HTTP endpoints to get status of configured health checks. Main use-cases of this project are:\n\n- Exposing HTTP health check endpoints for services that don't have a native HTTP health check API (i.e. databases or containers).\n- Exposing HTTP health check endpoints from the private network to the public (i.e. you are using external monitoring tool/service that doesn't have access to the private network).\n\n# Features\n\n- Supports all health checks from [hellofresh/health-go](https://github.com/hellofresh/health-go) library except gRPC (will be enabled later), and additionally:\n    - DNS hostname resolve check (A, CNAME, PTR, TXT records)\n    - ICMP ping\n\n# Getting started\n\n[//]: # (## Releases)\n\n[//]: # ()\n[//]: # (1. Download a binary for your OS from the [GitLab releases]\u0026#40;https://github.com/buzzer13/healthpose/releases\u0026#41; page.)\n\n[//]: # (2. Prepare a [configuration file]\u0026#40;#configuration\u0026#41; and put it in the supported directory.)\n\n## Container\n\n1. Pull and run `ghcr.io/buzzer13/healthpose:\u003ctag\u003e` image (tag can be either `latest`, or a specific version like `v1.2.0`).\n    - Command: `docker run --volume=\"healthpose-config:/config\" --name=healthpose -it \"ghcr.io/buzzer13/healthpose:latest\"`\n    - To use ping health check with runtimes other than Docker engine - you may need to apply `net.ipv4.ping_group_range=0 2147483647` sysctl variable to the container.\n2. Update an example [configuration file](#configuration) that was created in the volume.\n\n# Configuration\n\nConfig file can be placed at the following paths:\n\n- `/etc/healthpose/healthpose.yaml`\n- `/config/healthpose.yaml`\n- `healthpose.yaml`\n- At the path, specified by the `CONFIG_FILE` environment variable.\n\nHere is the general configuration file structure:\n\n```yaml\n# Internal HTTP server configuration dictionary.\nhttp:\n  # Address and port HTTP server should listen at\n  listen: :8080\n\n# Health check configuration dictionary.\n# Key is the service name, that will be used in the heath check URL.\n# If you define `test` service below - then `GET /test` endpoint will be created\n# in the internal HTTP server.\nservices:\n  test:\n    # Required. Name of the service.\n    name: example\n    # Required. Version of the service.\n    version: v1.0\n    # Required. List of service health checks, that should be performed.\n    checks:\n      - # Required. Health check name. It will be shown in the endpoint response if check fails.\n        name: cassandra\n        # Required. Health check interval.\n        timeout: 60\n        # Optional. If check is marked as optional - it won't fail health check of the whole service.\n        optional: true\n        # Required. One of the available health check configuration dictionaries.\n        # Examples can be found here: https://github.com/buzzer13/healthpose/blob/main/misc/config/healthpose.yaml\n        dns:\n          address: example.com\n          server: 8.8.8.8:53\n          type: a\n          request_timeout: 5\n          fallback_delay: 0.3\n```\n\nYou can check out [example config here](https://github.com/buzzer13/healthpose/blob/main/misc/config/healthpose.yaml).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuzzer13%2Fhealthpose","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbuzzer13%2Fhealthpose","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbuzzer13%2Fhealthpose/lists"}