mirror of
https://github.com/ReCloudStudio/WebHooker.git
synced 2026-09-23 08:31: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
75 lines
2.3 KiB
Markdown
75 lines
2.3 KiB
Markdown
# Getting Started
|
|
|
|
## Prerequisites
|
|
|
|
- [Node.js](https://nodejs.org/) 18+
|
|
- A [Cloudflare account](https://dash.cloudflare.com/) (free tier works)
|
|
- A [GitHub App](https://github.com/settings/apps/new) (see [GitHub App Setup](/guide/deployment#github-app-setup))
|
|
- A Discord bot token (see [Discord Bot Setup](/guide/deployment#discord-bot-setup))
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
cp .env.example .dev.vars
|
|
```
|
|
|
|
Edit `.dev.vars` with your actual values:
|
|
|
|
```bash
|
|
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
|
|
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
This starts a local Miniflare environment at `http://localhost:8787`.
|
|
|
|
### 3. Verify
|
|
|
|
```bash
|
|
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 |
|