mirror of
https://github.com/ReCloudStudio/WebHooker.git
synced 2026-09-22 16:11:29 +00:00
- Update event formatter count 23 -> 28 (add ping, workflow_job, status, deployment, check_suite) - Document Telegram support end-to-end (routes, /gh commands, richheader, secrets) - Fix route schema to use targets array and group fields (owners, emoji) - Correct KV/D1 storage layout (msg:*, i18n:*, D1 links/send_logs) - Note GITHUB_APP_ID/GITHUB_PRIVATE_KEY are unused; drop legacy DISCORD_CHANNEL_ID/PORT/CONFIG_PATH - Remove stale Docker deployment section - Update color table, branch filter compatibility, admin API endpoints - AGENTS.md: add Documentation section requiring doc updates after functional changes
2.3 KiB
2.3 KiB
Getting Started
Prerequisites
- Node.js 18+
- A Cloudflare account (free tier works)
- A GitHub App (see GitHub App Setup)
- A Discord bot token (see Discord Bot Setup)
Installation
git clone https://github.com/ReCloudStudio/WebHooker.git
cd WebHooker
npm install
Local Development
1. Configure Secrets
Copy the example env file and fill in your secrets:
cp .env.example .dev.vars
Edit .dev.vars with your actual values:
GITHUB_WEBHOOK_SECRET=your-webhook-secret
GITHUB_CLIENT_ID=your-client-id
GITHUB_CLIENT_SECRET=your-client-secret
DISCORD_TOKEN=your-bot-token
DISCORD_PUBLIC_KEY=your-public-key
ADMIN_USER_IDS=your-github-id,your-github-login
BASE_URL=http://localhost:8787
::: tip
GITHUB_APP_ID / GITHUB_PRIVATE_KEY are not used by the code (the OAuth flow only needs the client ID/secret), so you can omit them. Target channels are set per route in the Web UI, so no DISCORD_CHANNEL_ID is needed. To enable /gh commands locally, copy the Public Key from the Developer Portal into DISCORD_PUBLIC_KEY and set the Interactions Endpoint URL to http://localhost:8787/discord/interactions.
:::
::: warning
.dev.vars is gitignored and contains secrets. Never commit it.
:::
2. Start Dev Server
npm run dev
This starts a local Miniflare environment at http://localhost:8787.
3. Verify
curl http://localhost:8787/health
# → {"status":"ok"}
Available Scripts
| Script | Description |
|---|---|
npm run dev |
Start local dev server (wrangler) |
npm run deploy |
Deploy to Cloudflare |
npm run typecheck |
TypeScript type checking |
npm run lint |
ESLint |
npm run lint:md |
Markdownlint |
npm run format |
Format with Prettier |
npm run format:check |
Check Prettier formatting |
npm run docs:dev |
Start docs dev server |
npm run docs:build |
Build docs site |