{"id":15199896,"url":"https://github.com/afrouper/echo-service","last_synced_at":"2025-10-11T08:42:07.240Z","repository":{"id":65824177,"uuid":"597849234","full_name":"Afrouper/echo-service","owner":"Afrouper","description":"Small, fast and secure echo service - binaries and images available","archived":false,"fork":false,"pushed_at":"2025-09-08T13:41:38.000Z","size":79,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-08T15:33:21.115Z","etag":null,"topics":["docker","docker-image","echo","echo-server","golang","scratch","secure"],"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/Afrouper.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":"2023-02-05T20:15:35.000Z","updated_at":"2025-09-08T13:41:38.000Z","dependencies_parsed_at":"2025-09-08T15:18:51.575Z","dependency_job_id":"c3e73861-f946-4c3c-9064-a7407883f6ab","html_url":"https://github.com/Afrouper/echo-service","commit_stats":{"total_commits":55,"total_committers":4,"mean_commits":13.75,"dds":0.5272727272727273,"last_synced_commit":"3fffcfce363d09e7bbc79ed69a9303035c19c4e5"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/Afrouper/echo-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Afrouper%2Fecho-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Afrouper%2Fecho-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Afrouper%2Fecho-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Afrouper%2Fecho-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Afrouper","download_url":"https://codeload.github.com/Afrouper/echo-service/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Afrouper%2Fecho-service/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279006638,"owners_count":26084149,"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","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["docker","docker-image","echo","echo-server","golang","scratch","secure"],"created_at":"2024-09-28T02:20:35.331Z","updated_at":"2025-10-11T08:42:07.193Z","avatar_url":"https://github.com/Afrouper.png","language":"Go","readme":"# Simple echo service\n\n[![Build and Test](https://github.com/afrouper/echo-service/actions/workflows/build.yml/badge.svg)](https://github.com/afrouper/echo-service/actions/workflows/build.yml)\n[![Build Release](https://github.com/afrouper/echo-service/actions/workflows/release.yaml/badge.svg)](https://github.com/afrouper/echo-service/actions/workflows/release.yaml)\n[![CodeQL](https://github.com/afrouper/echo-service/actions/workflows/codeql.yml/badge.svg)](https://github.com/afrouper/echo-service/actions/workflows/codeql.yml)\n[![](https://badgen.net/github/release/afrouper/echo-service?icon=github)](https://github.com/afrouper/echo-service/releases/latest)\n![](https://badgen.net/github/releases/afrouper/echo-service)\n![](https://badgen.net/github/open-issues/afrouper/echo-service)\n![](https://badgen.net/docker/size/afrouper/echo-service/latest/amd64)\n[![](https://badgen.net/github/license/afrouper/echo-service)](https://raw.githubusercontent.com/afrouper/echo-service/main/LICENSE)\n\nPlain and very simple echo service usefully for testing infrastructure components.\n\nA docker image is available on [Docker Hub](https://hub.docker.com/r/afrouper/echo-service) and\n[ghcr.io](https://github.com/Afrouper/echo-service/pkgs/container/echo-service).\n\n## Build \u0026 Test\nInstall the latest go version: https://go.dev/doc/install\n\n* Resolve dependencies: `go get -d -v`\n* Build: `go build -v ./...`\n* Test: `go test -v ./...`\n\n## Security\nThe provided docker images are small and secure. The latest stable go version will be used to compile and link to\na static binary.\nThe binary is started as non root User. The User has no shell, no home directory and no ability to login.\nThe smallest possible image is used: `FROM scratch`\n\n## Usage\nThe binary can be started via `./echo-service`. By default, it listens on port 8080. You can change the listen port\nby setting the environment variable `echo_service_port`.\n\nWhen setting the environment variable `instance_name` a custom instance name will be send with each response.\n\n### JWT Bearer Token\nIf using a JWT Bearer token it will be decoded (without verifying!) and send back as JSON.\n\n### Timeout simulation\nYou can specify time periods the echo-service will sleep to simulate timeout handling in e.g. a gateway.\nAll durations can be used with a time unit. Valid time units are \"ns\", \"us\" (or \"µs\"), \"ms\", \"s\", \"m\", \"h\".\nThe duration can be send as Query Param (`timeout=30s`) or HTTP Header (`X-Timeout: 5000ms`)\n\n## Output\nIf called with a Chrome browser this is  the output: \n```json\n{\n  \"http\": {\n    \"method\": \"GET\",\n    \"protocol\": \"HTTP/1.1\",\n    \"host\": \"localhost:8080\"\n  },\n  \"header\": {\n    \"Accept\": [\n      \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\"\n    ],\n    \"Accept-Encoding\": [\n      \"gzip, deflate, br\"\n    ],\n    \"Accept-Language\": [\n      \"de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7\"\n    ],\n    \"Connection\": [\n      \"keep-alive\"\n    ],\n    \"Dnt\": [\n      \"1\"\n    ],\n    \"Sec-Ch-Ua\": [\n      \"\\\"Not_A Brand\\\";v=\\\"99\\\", \\\"Google Chrome\\\";v=\\\"109\\\", \\\"Chromium\\\";v=\\\"109\\\"\"\n    ],\n    \"Sec-Ch-Ua-Mobile\": [\n      \"?0\"\n    ],\n    \"Sec-Ch-Ua-Platform\": [\n      \"\\\"macOS\\\"\"\n    ],\n    \"Sec-Fetch-Dest\": [\n      \"document\"\n    ],\n    \"Sec-Fetch-Mode\": [\n      \"navigate\"\n    ],\n    \"Sec-Fetch-Site\": [\n      \"none\"\n    ],\n    \"Sec-Fetch-User\": [\n      \"?1\"\n    ],\n    \"Upgrade-Insecure-Requests\": [\n      \"1\"\n    ],\n    \"User-Agent\": [\n      \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36\"\n    ]\n  },\n  \"remoteAddress\": \"[::1]:60259\",\n  \"request\": {\n    \"requestURI\": \"/foo/bar?q=v\",\n    \"path\": \"/foo/bar\",\n    \"queryString\": \"q=v\",\n    \"body\": \"\"\n  },\n  \"authorization\" : {\n    \"header\" : {\n      \"alg\": \"HS256\",\n      \"typ\": \"JWT\"\n    },\n    \"payload\" : {\n      \"sub\": \"1234567890\",\n      \"name\": \"John Doe\",\n      \"iat\": 1516239022,\n      \"customClaim\": \"Foo\"\n    }\n  }\n}\n```","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafrouper%2Fecho-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fafrouper%2Fecho-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafrouper%2Fecho-service/lists"}