{"id":16226249,"url":"https://github.com/ghostdevv/webhook","last_synced_at":"2026-01-11T03:59:40.926Z","repository":{"id":254189094,"uuid":"845760477","full_name":"ghostdevv/webhook","owner":"ghostdevv","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-22T00:25:07.000Z","size":91,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-08T03:44:34.346Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/ghostdevv.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":"2024-08-21T22:00:35.000Z","updated_at":"2024-08-23T22:40:47.000Z","dependencies_parsed_at":"2024-08-21T23:55:32.968Z","dependency_job_id":"bbad7089-4d38-4f10-9130-961b2fa750a1","html_url":"https://github.com/ghostdevv/webhook","commit_stats":null,"previous_names":["ghostdevv/webhook"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghostdevv%2Fwebhook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghostdevv%2Fwebhook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghostdevv%2Fwebhook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ghostdevv%2Fwebhook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ghostdevv","download_url":"https://codeload.github.com/ghostdevv/webhook/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246819749,"owners_count":20839094,"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-10-10T12:48:34.576Z","updated_at":"2026-01-11T03:59:40.900Z","avatar_url":"https://github.com/ghostdevv.png","language":"TypeScript","readme":"# webhook\n\nA simple proxy that sends webhooks it recieves to Discord. It takes in a plain `Record\u003cstring, string | number | boolean\u003e` like record to make sending simple.\n\n## Send an embed\n\nYou can send your plain object (or an array of objects for multiple embeds), and it'll send it as an embed. All keys are stringified so you can't send nested objects.\n\n```bash\ncurl -X POST -d '{\"hello\": \"world\"}' https://your-instance\n```\n\n![](./.github/images/single-embed.png)\n\n## Special Fields\n\nKeys that start wth `$` might have a special behaviour, and are all reserved for potential future use so won't show up in your embed.\n\n### `$colour`\n\n```bash\ncurl -X POST -d '{\"$colour\": \"#f96743\"}' https://your-instance\n```\n\n![](./.github/images/coloured-embed.png)\n\n### `$title`\n\n```bash\ncurl -X POST -d '{\"$title\": \"Hello World\"}' https://your-instance\n```\n\n![](./.github/images/custom-title-embed.png)\n\n### `$description`\n\n```bash\ncurl -X POST -d '{\"$description\": \"Hello World\"}' https://your-instance\n```\n\n![](./.github/images/custom-description-embed.png)\n\n## Hosting\n\nThis is designed to run on Cloudflare workers. To self-host it make sure you have [`pnpm`](https://pnpm.io/) and [`node`](https://nodejs.org/) installed, and then clone the repo.\n\n1. Add your account to the [`wrangler.toml`](./wrangler.toml) file. You can find this in the URL of the Cloudflare dashboard.\n\n![account id in the cloudflare dash url](./.github/images/account-id.png)\n\n2. Next you need to add your `HOOK_URL` secret you got from Discord, this can be done by running:\n\n```bash\npnpm wrangler secret put HOOK_URL\n```\n\n3. Now you can deploy the worker:\n\n```bash\npnpm run deploy\n```\n\n4. Finally, you can view the worker and add a custom domain on the [Cloudflare dashboard](https://dash.cloudflare.com?to=/:account/workers/services/view/webhook).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fghostdevv%2Fwebhook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fghostdevv%2Fwebhook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fghostdevv%2Fwebhook/lists"}