consolidate runtime env into .env, drop ecosystem env blocks (#1229)
- Make .env the single source of truth for runtime config. Remove all
`env:` blocks from SREBOT/ecosystem.config.js and TSSBOT/ecosystem.config.js
so values can't silently shadow .env. Both ecosystem files load .env via
`require('dotenv').config()` and PM2 inherits the resolved environment.
- Rename SREBOT_STORAGE_VOL_PATH → STORAGE_VOL_PATH across all readers
(BOT/utils.py, BOT/receiver_bridge.py, BOT/render_recap.py, server.js,
web/server.js, dateindex.js, scripts/*, srebot.service, tests/, README,
and both .env files). STORAGE is shared between SREBOT and TSSBOT, so the
variable shouldn't carry one bot's prefix.
- Rename per-process PORT env vars to disambiguated names so .env can be
the source of truth without collisions:
PORT (api) → SREBOT_API_PORT (server.js)
PORT (web) → SREBOT_WEB_PORT (web/server.js)
WEBHOOK_PORT → SREBOT_WEBHOOK_PORT (github_webhook_updater.py)
SREBOT_EXTERNAL_HOST/PORT/UPSTREAM_URL were already uniquely named;
they just move from ecosystem env to .env.
- TSSBOT/.env: drop GITHUB_WEBHOOK_SECRET (only srebot-webhook consumes it)
and the stale SREBOT_DEPLOY_PATH. SREBOT/.env: also drop the obsolete
SREBOT_DEPLOY_PATH (ecosystem now hardcodes __dirname).
- ecosystem.config.js no longer references SREBOT_DEPLOY_PATH; deploy path
is always __dirname of the ecosystem file.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -3,14 +3,14 @@
|
||||
|
||||
1. **Clone the repository**
|
||||
```bash
|
||||
git clone https://github.com/Sop-rs/SREBOT_MEOW.git
|
||||
cd SREBOT_MEOW
|
||||
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 # On Windows: venv\Scripts\activate
|
||||
source .venv/bin/activate
|
||||
```
|
||||
|
||||
3. **Install dependencies**
|
||||
@@ -22,18 +22,25 @@
|
||||
```bash
|
||||
nano .env
|
||||
```
|
||||
|
||||
Edit the existing `.env` in the repo root and keep the storage path there:
|
||||
|
||||
`.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
|
||||
SREBOT_DEPLOY_PATH=/absolute/path/to/SREBOT_MEOW
|
||||
DISCORD_KEY=your_discord_bot_token_here
|
||||
DEEPL_KEY=your_deepl_api_key_here # Optional
|
||||
GITHUB_WEBHOOK_SECRET=your_webhook_secret # For auto-deployment
|
||||
SREBOT_STORAGE_VOL_PATH=/absolute/path/to/storage
|
||||
STORAGE_VOL_PATH=/absolute/path/to/storage # Shared with TSSBOT
|
||||
SREBOT_API_BEARER_TOKEN=your_internal_api_token # Optional, protects /api/*
|
||||
SREBOT_EXTERNAL_PORT=18081 # External bridge port
|
||||
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 # Internal SREBOT API to proxy
|
||||
SREBOT_EXTERNAL_UPSTREAM_URL=http://127.0.0.1:6000
|
||||
NODE_ENV=production
|
||||
PYTHONUNBUFFERED=1
|
||||
```
|
||||
|
||||
5. **Run the bot**
|
||||
@@ -47,7 +54,7 @@
|
||||
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 `SREBOT_STORAGE_VOL_PATH`.
|
||||
`.env` via `STORAGE_VOL_PATH`.
|
||||
|
||||
Useful commands:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user