Files
SREBOT/README.md
T
NotSoToothless 47ae8b92f7 Auto merge dev → main (#1258)
* meow

* updated it

* meow

* add avg TTL footer to /comp + extend freshness window to 90m when servers slow

---------

Co-authored-by: Clippii <clippii@protonmail.com>
2026-05-17 12:58:48 -07:00

80 lines
2.3 KiB
Markdown

### Installation
1. **Clone the repository**
```bash
git clone git@github.com:FURRO404/BOTS.git
cd BOTS/SREBOT
```
2. **Set up Python virtual environment**
```bash
python3 -m venv .venv
source .venv/bin/activate
```
3. **Install dependencies**
```bash
pip install -r requirements.txt
```
4. **Configure environment variables**
```bash
nano .env
```
`.env` is the single source of truth for runtime config — `ecosystem.config.js`
has no `env:` blocks; it loads `.env` via `require('dotenv').config()` and PM2
inherits the variables when spawning each app. Keys SREBOT reads:
```env
DISCORD_KEY=your_discord_bot_token_here
DEEPL_KEY=your_deepl_api_key_here # Optional
GITHUB_WEBHOOK_SECRET=your_webhook_secret # For auto-deployment
STORAGE_VOL_PATH=/absolute/path/to/storage # Shared with TSSBOT
SREBOT_API_BEARER_TOKEN=your_internal_api_token # Optional, protects /api/*
SREBOT_API_PORT=6000
SREBOT_WEB_PORT=3001
SREBOT_WEBHOOK_PORT=9000
SREBOT_TTL_ALERT_WEBHOOK_URL=https://discord.com/api/webhooks/...
SREBOT_EXTERNAL_HOST=0.0.0.0
SREBOT_EXTERNAL_PORT=18081
SREBOT_EXTERNAL_BEARER_TOKEN=your_external_bridge_token # Optional, protects the bridge API and websocket
SREBOT_EXTERNAL_UPSTREAM_URL=http://127.0.0.1:6000
SREBOT_TTL_ALERT_WEBHOOK_URL=https://discord.com/api/webhooks/... # Optional, maintains one Discord status message for TTL degradation/recovery
NODE_ENV=production
PYTHONUNBUFFERED=1
```
5. **Run the bot**
```bash
python BotScript.py
```
### AXBot bridge process
`ecosystem.config.js` now includes a dedicated PM2 app named `srebot-axbot`.
It proxies read-only SREBOT queries and broadcasts replay/GOB envelopes over
websocket on the same external port.
Its outbox/state files live under the shared storage volume configured in
`.env` via `STORAGE_VOL_PATH`.
Useful commands:
```bash
pm2 start ecosystem.config.js --only srebot-api
pm2 start ecosystem.config.js --only srebot-axbot
pm2 logs srebot-axbot
```
Clients should point their query client at:
```env
SREBOT_API_BASE_URL=http://<srebot-host>:18081
```
The bridge app logs both sides of the transfer:
- incoming client HTTP requests
- outgoing proxy responses
- websocket envelopes broadcast to connected clients
# test