{"id":14036499,"url":"https://github.com/probot/smee.io","last_synced_at":"2025-05-15T20:00:36.400Z","repository":{"id":38326014,"uuid":"178718363","full_name":"probot/smee.io","owner":"probot","description":"☁️📦 Webhook payload delivery service","archived":false,"fork":false,"pushed_at":"2025-03-03T16:04:03.000Z","size":1401,"stargazers_count":377,"open_issues_count":28,"forks_count":90,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-08T02:38:51.120Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://smee.io","language":"JavaScript","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/probot.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}},"created_at":"2019-03-31T17:14:03.000Z","updated_at":"2025-04-06T14:57:15.000Z","dependencies_parsed_at":"2024-04-16T06:37:55.081Z","dependency_job_id":"b20f9594-b68c-4b6a-9102-7b77c50aac68","html_url":"https://github.com/probot/smee.io","commit_stats":{"total_commits":242,"total_committers":20,"mean_commits":12.1,"dds":"0.31404958677685946","last_synced_commit":"9fe8e5caf49d6f25887accebae7576206ad770a8"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probot%2Fsmee.io","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probot%2Fsmee.io/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probot%2Fsmee.io/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/probot%2Fsmee.io/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/probot","download_url":"https://codeload.github.com/probot/smee.io/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254414454,"owners_count":22067261,"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-12T03:01:59.584Z","updated_at":"2025-05-15T20:00:35.876Z","avatar_url":"https://github.com/probot.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\u003ca href=\"https://smee.io\"\u003esmee.io\u003c/a\u003e\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  Webhook payload delivery service\u003cbr\u003e\n  \u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e •\n  \u003ca href=\"#how-it-works\"\u003eHow it works\u003c/a\u003e •\n  \u003ca href=\"#deploying-your-own-smeeio\"\u003eDeploying your own Smee.io\u003c/a\u003e •\n  \u003ca href=\"#faq\"\u003eFAQ\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003ca href=\"https://github.com/probot/smee.io\"\u003e\u003cimg alt=\"GitHub Actions status\" src=\"https://github.com/probot/smee.io/workflows/Node%20CI/badge.svg\"\u003e \u003ca href=\"https://codecov.io/gh/probot/smee.io/\"\u003e\u003cimg src=\"https://badgen.now.sh/codecov/c/github/probot/smee.io\" alt=\"Codecov\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003ca href=\"https://github.com/probot/smee-client\"\u003eLooking for \u003cstrong\u003eprobot/smee-client\u003c/strong\u003e?\u003c/a\u003e\u003c/p\u003e\n\n## Usage\n\nSmee is a webhook payload delivery service - it receives webhook payloads, and sends them to listening clients. You can generate a new channel by visiting https://smee.io, and get a unique URL to send payloads to.\n\n\u003e **Heads up**! Smee.io is intended for use in development, not for production. It's a way to inspect payloads through a UI and receive them on a local machine, not as a proxy for production applications.\n\n## How it works\n\nSmee works with two components: the public website [smee.io](https://smee.io/) and the [`smee-client`](https://github.com/probot/smee-client). They talk to each other via [Server-Sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events), a type of connection that allows for messages to be sent from a source to any clients listening.\n\nThis means that channels are just an abstraction - all Smee does is get a payload and sends it to any _actively connected clients_.\n\n## Deploying your own Smee.io\n\nSmee.io is a simple Node.js application. You can deploy it any way you would deploy any other Node app. The easier solution is probably Heroku, or you can use Docker:\n\n```shell\ndocker run -p 3000:3000 ghcr.io/probot/smee.io\n```\n\nDon't forget to point `smee-client` to your instance of `smee.io`:\n\n```shell\nsmee --url https://your-smee.io/channel\n```\n\n### Running multiple instances of Smee.io\n\nIf you need to run multiple instances of the web app, you need a way to share events across those instances. A client may be connected to instance A, so if a relevant event is sent to instance B, instance A needs to know about it too.\n\nFor that reason, Smee.io has built-in support for Redis as a message bus. To enable it, just set a `REDIS_URL` environment variable. That will tell the app to use Redis when receiving payloads, and to publish them from each instance of the app.\n\n## FAQ\n\n**How long do channels live for?**\n\nChannels are always active - once a client is connected, Smee will send any payloads it gets at `/:channel` to those clients.\n\n**Should I use this in production?**\n\nNo! Smee is not designed for production use - it is a development and testing tool. Note that channels are _not authenticated_, so if someone has your channel ID they can see the payloads being sent, so it is _not_ secure for production use.\n\n**Are payloads ever stored?**\n\nWebhook payloads are never stored on the server, or in any database; the Smee.io server is simply a pass-through. However, we do store payloads in `localStorage` in your browser, so that revisiting `https://smee.io/:channel` will persist the payloads you saw there last.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprobot%2Fsmee.io","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprobot%2Fsmee.io","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprobot%2Fsmee.io/lists"}