init
This commit is contained in:
@@ -1 +1,70 @@
|
||||
# tssbot.web
|
||||
# tssbot.web
|
||||
|
||||
React + Vite + Tailwind v4 web shell for Toothless' TSS Bot.
|
||||
|
||||
Routes:
|
||||
|
||||
- `/` landing page
|
||||
- `/teams` TSS team leaderboard
|
||||
- `/teams/:teamname` generated team profile with roster, summary, rating history, and battle results
|
||||
- `/battle-logs` Battle Logs
|
||||
|
||||
## Local development
|
||||
|
||||
```sh
|
||||
npm install
|
||||
npm run dev
|
||||
```
|
||||
|
||||
The development server runs on <http://localhost:3001>.
|
||||
|
||||
By default, `/api/*` and `/health` requests are proxied to `http://localhost:6000`. Override
|
||||
that with `VITE_API_TARGET`:
|
||||
|
||||
```sh
|
||||
VITE_API_TARGET=http://localhost:8080 npm run dev
|
||||
```
|
||||
|
||||
## Production with PM2
|
||||
|
||||
```sh
|
||||
npm install
|
||||
npm run build
|
||||
pm2 start ecosystem.config.cjs
|
||||
```
|
||||
|
||||
The production server runs on <http://localhost:3001> and proxies `/api/*` plus
|
||||
`/health` to `API_UPSTREAM`, which defaults to `http://127.0.0.1:6000`.
|
||||
|
||||
Override the API target before starting PM2 if needed:
|
||||
|
||||
```sh
|
||||
API_UPSTREAM=http://127.0.0.1:8080 pm2 start ecosystem.config.cjs
|
||||
```
|
||||
|
||||
## GitHub webhook
|
||||
|
||||
The webhook process listens on port `3011` at `/github`. Configure GitHub to send
|
||||
push events there.
|
||||
|
||||
Set a webhook secret before starting PM2 if you want signature validation:
|
||||
|
||||
```sh
|
||||
GITHUB_WEBHOOK_SECRET=your-secret pm2 start ecosystem.config.cjs
|
||||
```
|
||||
|
||||
On PowerShell, set `$env:GITHUB_WEBHOOK_SECRET = "your-secret"` before starting
|
||||
PM2, or put the value directly in `ecosystem.config.cjs`.
|
||||
|
||||
The default deploy flow is:
|
||||
|
||||
```sh
|
||||
git pull --ff-only
|
||||
npm install
|
||||
npm run build
|
||||
pm2 reload tssbot-web --update-env
|
||||
```
|
||||
|
||||
Only processes listed in `PM2_RESTART_TARGETS` are reloaded. The default is
|
||||
`tssbot-web`, so unrelated PM2 processes are left alone. The webhook exits after
|
||||
24 hours so PM2 restarts it cleanly.
|
||||
|
||||
Reference in New Issue
Block a user