{"id":13764838,"url":"https://github.com/sgrimee/whproxy","last_synced_at":"2026-01-18T09:06:16.703Z","repository":{"id":57567258,"uuid":"63189519","full_name":"sgrimee/whproxy","owner":"sgrimee","description":"WIP - Proxy incoming webhooks to established websockets","archived":false,"fork":false,"pushed_at":"2016-08-03T14:03:52.000Z","size":2413,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-17T01:32:25.402Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sgrimee.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}},"created_at":"2016-07-12T20:15:53.000Z","updated_at":"2021-07-01T21:56:22.000Z","dependencies_parsed_at":"2022-09-17T16:13:50.429Z","dependency_job_id":null,"html_url":"https://github.com/sgrimee/whproxy","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgrimee%2Fwhproxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgrimee%2Fwhproxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgrimee%2Fwhproxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgrimee%2Fwhproxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sgrimee","download_url":"https://codeload.github.com/sgrimee/whproxy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253480400,"owners_count":21915246,"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":[],"created_at":"2024-08-03T16:00:30.021Z","updated_at":"2025-05-10T20:31:09.043Z","avatar_url":"https://github.com/sgrimee.png","language":"Go","readme":"# whproxy - Web Hooks Proxy\n\nProxy incoming web hooks to established web sockets.\n\nThis proxy can be used when an application needs to receive json web hooks from some platform and a firewall blocks incoming connections. When client applications establish a web socket connection to this proxy, a listener is created for incoming web hooks. When a web hook arrives on a given listener, the event is signaled to the corresponding client application via the web socket.\n\n## Usage\n\n    whproxy --host my.publichost.com --port 8080\n\nAt the moment the same port is used for webhooks and websockets.\n\nThen establish a websocket connection to my.publichost.com:8080 and you will receive a json payload with the URL of your private webhook endpoint.\nIncoming webhooks events are passed on to the websocket, encapsulated inside the 'data' field of the json object.\n\n## Encryption\n\nEncryption is enabled by providing a certificate and key file\n\n    whproxy --host my.publichost.com --port 8443 --cert cert.pem --key key.unencrypted.pem\n\nIf you use self-signed certificates, be sure to enable cert pinning on the client.\n\n    openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 360\n    openssl rsa -in key.pem -out key.unencrypted.pem\n\n## Validation\n\nYou can enforce the presence of a valid HMAC in the header of incoming webhooks but giving the '-validate' option\n\n## Docker\n\n    docker run -it -p 12345:12345 quay.io/sgrimee/whproxy:v0.2.0 -host my.docker.host\n\nAvailable versions can be found at: https://quay.io/repository/sgrimee/whproxy?tab=tags\n\nIf you use certificates, mount them with\n\n```\n    docker run -it -p 8080:12345 \\\n      -v $(pwd)/cert.pem:/cert.pem \\\n      -v $(pwd)/key.unencrypted.pem:/key.pem \\\n      quay.io/sgrimee/whproxy:v0.2.0 \\\n        -host my.docker.host \\\n        -cert /cert.pem -key /key.pem\n```\n\n","funding_links":[],"categories":["Developer Tools"],"sub_categories":["Web SDK \u0026 Widgets samples"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsgrimee%2Fwhproxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsgrimee%2Fwhproxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsgrimee%2Fwhproxy/lists"}