# negoT8 — Setup Guide ## Why it works on my machine but not yours The most common causes are listed here. Go through them **in order**. --- ## 1. `.env` file is missing ❌ `.env` is **never committed to Git** (it's in `.gitignore`). Your friend must create it manually: ```bash cp .env.example .env # then open .env and fill in every value ``` Every blank/missing key will silently cause failures — Telegram bots won't start, AI won't respond, blockchain calls will fail. --- ## 2. Python version mismatch ⚠️ This project requires **Python 3.10+** (3.9 works but shows deprecation warnings from Google libraries). ```bash python3 --version # must be 3.10 or higher recommended ``` If on macOS and Python is too old: ```bash brew install python@3.11 ``` --- ## 3. Virtual environment not created / activated ❌ The project uses a `venv` that is **not committed to Git**. Your friend must create and activate it: ```bash # In the repo root python3 -m venv venv # macOS / Linux source venv/bin/activate # Windows venv\Scripts\activate ``` --- ## 4. Dependencies not installed ❌ After activating the venv: ```bash pip install -r requirements.txt ``` If `requirements.txt` was missing before, it's now at the repo root. --- ## 5. Bot tokens: only ONE process can poll at a time 🔑 Each Telegram bot token can only be used by **one running process** at a time. If your machine is already running the bots, your friend's machine will get: ``` telegram.error.Conflict: terminated by other getUpdates request ``` **Fix**: Stop the bots on your machine before your friend starts them. Each person needs their **own BotFather tokens** for their own copy. --- ## 6. `MOCK_MODE` must be set correctly In `.env`: - `MOCK_MODE=true` → no Gemini/AI calls, uses hardcoded responses (safe for testing) - `MOCK_MODE=false` → needs a valid `GEMINI_API_KEY` --- ## 7. Blockchain keys (optional for testing) If `POLYGON_PRIVATE_KEY` or `AGREEMENT_CONTRACT_ADDRESS` is missing/wrong, the blockchain badge won't appear **but the bot will still work** — it falls back gracefully. To get test MATIC for Polygon Amoy: https://faucet.polygon.technology --- ## Full Setup (copy-paste for your friend) ```bash # 1. Clone the repo git clone cd negot8 # 2. Create Python virtual environment python3 -m venv venv source venv/bin/activate # macOS/Linux # 3. Install dependencies pip install -r requirements.txt # 4. Set up environment variables cp .env.example .env # Edit .env — fill in TELEGRAM_BOT_TOKEN_A, TELEGRAM_BOT_TOKEN_B at minimum # Set MOCK_MODE=true to skip needing a Gemini API key # 5. Start the backend bots cd backend python3 -u run.py # 6. (Optional) Start the Next.js dashboard cd ../dashboard npm install npm run dev ``` --- ## Minimum viable `.env` to get bots running ```env TELEGRAM_BOT_TOKEN_A= TELEGRAM_BOT_TOKEN_B= MOCK_MODE=true DATABASE_PATH=negot8.db ``` Everything else is optional for basic testing.