A modular GitHub webhook intake and activity-tracking service for dobby-hooks.ramzbank.com.
- Receives GitHub webhooks for repositories you control
- Verifies webhook signatures using
X-Hub-Signature-256 - Stores raw webhook deliveries in SQLite
- Normalizes webhook events into a durable internal event stream
- Polls GitHub for complementary activity when webhooks cannot be installed on third-party repositories
- Exposes a localhost-only bridge for pending events
GitHub webhooks only work on repositories or organizations where you can install them. For repositories owned by other people, this project adds polling for:
- GitHub notifications related to the authenticated account
- Public user activity events for the configured GitHub username
- Commits by the configured username in selected watched repositories
This is useful, but it is not a perfect substitute for direct webhooks on third-party repositories.
Bound locally on 127.0.0.1:8787 by default:
POST /webhooks/githubGET /healthzGET /internal/events/pending
nginx should proxy only POST /webhooks/github publicly.
cd /root/.openclaw/workspace/projects/dobby-hooks
cp .env.example .env
bun run check
bun test
bun run startdeploy/nginx/dobby-hooks.ramzbank.com.confdeploy/systemd/dobby-hooks.service
- Create
.envwith real secrets - Issue TLS for
dobby-hooks.ramzbank.com - Enable the nginx site and reload nginx
- Enable and start the systemd unit
- Register webhook URLs in GitHub