### 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_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 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://:18081 ``` The bridge app logs both sides of the transfer: - incoming client HTTP requests - outgoing proxy responses - websocket envelopes broadcast to connected clients # test