
### Installation

1. **Clone the repository**
   ```bash
   git clone git@github.com:FURRO404/BOTS.git
   cd BOTS/SREBOT
   ```

2. **Set up the shared Python virtual environment** (used by both SREBOT and TSSBOT)
   ```bash
   python3 -m venv ../SHARED/.venv
   source ../SHARED/.venv/bin/activate
   ```

3. **Install dependencies**
   ```bash
   pip install -r ../SHARED/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
