Update README to reflect TypeScript source structure and dev workflow

This commit is contained in:
oonyeje 2026-07-07 04:18:07 +00:00
parent 2e21d1a407
commit 3a921deb27

View File

@ -6,6 +6,8 @@ Services like Square can deliver webhooks but cannot add custom HTTP headers lik
One proxy serves all projects — routing is driven entirely by environment variables.
Written in **TypeScript** (`src/server.ts`), compiled to plain JS at build time.
---
## How it works
@ -19,7 +21,7 @@ https://app-proxy.bsidesolutions.net/square
│ Express server resolves:
│ ROUTE_MAP["/square"] = { apiKeySlot: "square", functionId: "verify_square_webhook" }
│ PROJECT_CREDENTIALS["square"] = { project: "staging-crown-x-ms-monet", key: "..." }
│ PROJECT_CREDENTIALS["square"] = { project: "staging-crown-x-ms-monet", apiKey: "..." }
POST https://appwrite.bsidesolutions.net/v1/functions/verify_square_webhook/executions
@ -33,13 +35,19 @@ Appwrite function runs, returns response, proxy returns it to caller.
## Quick start
### Local
### Local development
```bash
cp .env.example .env
# edit .env to fill in PROJECT_CREDENTIALS and ROUTE_MAP
npm install
# Run with hot-reload TypeScript directly
npm run dev
# Or build + run compiled output
npm run build
npm start
```
@ -48,7 +56,7 @@ npm start
```bash
docker build -t bside-webhook-proxy .
docker run --rm -p 3012:3012 \
-e PROJECT_CREDENTIALS='{"square":{"project":"...","key":"..."}}' \
-e PROJECT_CREDENTIALS='{"square":{"project":"...","apiKey":"..."}}' \
-e ROUTE_MAP='/square=>{"apiKeySlot":"square","functionId":"verify_square_webhook"}' \
bside-webhook-proxy
```
@ -57,7 +65,7 @@ docker run --rm -p 3012:3012 \
1. In Coolify → **Add New Resource****Application** → **Public/Private Repo**
2. Point at `bside-solutions/bside-webhook-proxy`
3. Coolify auto-builds the Dockerfile
3. Coolify auto-builds the Dockerfile (multi-stage build compiles TypeScript)
4. Set the domain (e.g. `app-proxy.bsidesolutions.net`)
5. Add environment variables (see [Configuration](#configuration))
6. Deploy
@ -161,19 +169,20 @@ No code changes needed.
---
## Local development
## Project structure
```bash
npm install
npm start
```
To test forwarding:
```bash
curl -X POST 'http://localhost:3012/square' \
-H 'Content-Type: application/json' \
-d '{"test": true}'
bside-webhook-proxy/
├── src/
│ └── server.ts # TypeScript source (Express server)
├── dist/ # Compiled JS output (gitignored)
├── server.js # Entry point - requires compiled ./dist/server.js
├── package.json # Build + start scripts, deps
├── tsconfig.json # TypeScript compiler config
├── Dockerfile # Multi-stage build (TypeScript -> JS)
├── docker-compose.yml # Example Coolify deploy snippet
├── .env.example # Sample env vars
└── README.md
```
---