{"id":18535693,"url":"https://github.com/fivexl/lprobe","last_synced_at":"2025-08-21T10:32:11.582Z","repository":{"id":64145846,"uuid":"570822622","full_name":"fivexl/lprobe","owner":"fivexl","description":"A command-line tool to perform Local Health Check Probes inside Container Images (ECS, Docker)","archived":false,"fork":false,"pushed_at":"2024-11-10T08:30:57.000Z","size":71,"stargazers_count":50,"open_issues_count":3,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-12-07T21:35:52.406Z","etag":null,"topics":["aws","containers","docker","ecs","golang","kubernetes"],"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/fivexl.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2022-11-26T08:36:51.000Z","updated_at":"2024-11-10T08:25:51.000Z","dependencies_parsed_at":"2023-02-18T13:15:32.196Z","dependency_job_id":"a0d5e910-a4d5-43b6-8c98-e2ad41116f7e","html_url":"https://github.com/fivexl/lprobe","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fivexl%2Flprobe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fivexl%2Flprobe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fivexl%2Flprobe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fivexl%2Flprobe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fivexl","download_url":"https://codeload.github.com/fivexl/lprobe/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230507051,"owners_count":18236944,"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":["aws","containers","docker","ecs","golang","kubernetes"],"created_at":"2024-11-06T19:26:41.932Z","updated_at":"2025-08-21T10:32:11.570Z","avatar_url":"https://github.com/fivexl.png","language":"Go","readme":"[![FivexL](https://releases.fivexl.io/fivexlbannergit.jpg)](https://fivexl.io/)\n\n# Why LProbe?\nA command-line tool to perform Local Health Check Probes inside Container Images (ECS, Docker, Kubernetes). When your container gets breached, the intruder/attacker can use tools like wget or curl to download more tools for further exploitation and lateral movement within your system. Thus we developed LProbe as wget/curl replacement for hardened and secure container images.\n\n## HOW TO\n### Local run\n```shell\n./lprobe -port=8080 -endpoint=/\n```\n\n### Local run for gRPC\n```shell\n./lprobe -port=8080 -mode=grpc\n```\n\n### Add to a container image\nYou can bundle the statically compiled LProbe in your container image. Choose a binary release and download it in your Dockerfile:\n```\nARG LPROBE_VERSION=v0.0.6\nARG TARGETPLATFORM\nRUN case ${TARGETPLATFORM} in \\\n         \"linux/amd64\")  LPROBE_ARCH=amd64  ;; \\\n         \"linux/arm64\")  LPROBE_ARCH=arm64  ;; \\\n    esac \\\n \u0026\u0026 wget -qO/bin/lprobe https://github.com/fivexl/lprobe/releases/download/${LPROBE_VERSION}/lprobe-linux-${LPROBE_ARCH} \\\n \u0026\u0026 chmod +x /bin/lprobe \\\n \u0026\u0026 rm -f /usr/bin/wget\n```\n\n### Add to a container image from lprobe containter\n```\nFROM scratch\nCOPY --from=ghcr.io/fivexl/lprobe:0.0.6 /lprobe /bin/lprobe\n```\n\n### Docker Healthcheck \n```\nHEALTHCHECK --interval=15s --timeout=5s --start-period=5s --retries=3 CMD [ \"lprobe\", \"-mode=http\", \"-port=8080\", \"-endpoint=/healthz\" ]\n```\n\n### ECS Healthcheck \n```\n[ \"CMD\", \"lprobe\", \"-port=8080\", \"-endpoint=/healthz\"]\n```\n\n### Kubernetes (k8S) Healthcheck\n```\nspec:\n  containers:\n  - name: server\n    image: \"[YOUR-DOCKER-IMAGE]\"\n    ports:\n    - containerPort: 8080\n    readinessProbe:\n      exec:\n        command: [\"/bin/lprobe\", \"-port=8080\", \"-endpoint=/readiness\"]\n      initialDelaySeconds: 5\n    livenessProbe:\n      exec:\n        command: [\"/bin/lprobe\", \"-port=8080\", \"-endpoint=/liveness\"]\n      initialDelaySeconds: 10\n```\n\n### It is possible to use Lprobe as mounted volume \n\nTo use Lprobe via volume mounts, you need to download the Lprobe binary and place it in the volume. Here is how you can do it:\n\n1. Download the Lprobe binary:\n```\nwget -qO ./Lprobe https://github.com/fivexl/lprobe/releases/download/v0.1.5/lprobe-linux-amd64\nchmod +x ./Lprobe\n```\n\n2. Update your Docker Compose file to mount the Lprobe binary:\n```\nservices:\n  nginx:\n    image: nginx:latest\n    volumes:\n      - ./Lprobe:/Lprobe\n    healthcheck:\n      test: /Lprobe -mode=http -port=80 -endpoint=/\n      interval: 60s\n      retries: 3\n      start_period: 10s\n      timeout: 3s\n```\n\n# Dev Guide\n```\nexport GO111MODULE=on\ngo mod init lprobe\ngo mod tidy\ngo run .\n```\n\n```\ngo mod edit -go=1.21\ngo get -u -t -x ./...\ngo mod tidy\n```\n\n# Source code used\n- https://github.com/grpc-ecosystem/grpc-health-probe\n\n\n\n## Weekly review link\n\n- [Review](https://github.com/fivexl/lprobe/compare/main@%7B7day%7D...main)\n- [Review branch-based review](https://github.com/fivexl/lprobe/compare/review...main)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffivexl%2Flprobe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffivexl%2Flprobe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffivexl%2Flprobe/lists"}