WebHooker/docs/guide/getting-started.md
wyf9 afe19795b1
docs: sync documentation with current codebase
- 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
2026-08-05 17:22:15 +08:00

2.3 KiB

Getting Started

Prerequisites

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