════════════════════════════════════════════════════════════════════════ TeCoxBeta — installation ════════════════════════════════════════════════════════════════════════ CPANEL (Setup Python App) ───────────────────────── 1. Upload tecoxbeta.zip to your account and Extract it. You should end up with a folder like: /home/USER/tecoxbeta 2. cPanel → Software → "Setup Python App" → Create Application Python version : 3.9 or newer Application root : tecoxbeta Application URL : (pick your domain / subdomain) Startup file : passenger_wsgi.py Application entry : application Click CREATE. 3. At the TOP of that same page cPanel shows a command like: source /home/USER/virtualenv/tecoxbeta/3.11/bin/activate && cd /home/USER/tecoxbeta Copy it. Open cPanel → Terminal (or SSH), paste it, press Enter. Then run: pip install -r requirements.txt IMPORTANT: use that command, not plain SSH. Otherwise packages are installed into the wrong Python and the app will not start. 4. Go back to Setup Python App and press RESTART. 5. Visit your domain. / → search interface /docs → documentation /api → interactive API explorer /health → status check TROUBLESHOOTING ─────────────── • "A required package is not installed yet" → step 3 was skipped or run in the wrong shell. Redo it, then Restart. • 500 error / blank page → cPanel → Setup Python App → check the log file path shown there. • Streaming (/stream) arrives all at once → disable response buffering / "Optimize Website" for the domain. • Passenger keeps serving old code → press RESTART after every change. RUNNING WITHOUT CPANEL ────────────────────── pip install -r requirements.txt python run.py → http://localhost:8000 Other options: uvicorn deepsearch.api:app --host 0.0.0.0 --port 8000 gunicorn -k uvicorn.workers.UvicornWorker deepsearch.api:app -b 0.0.0.0:8000 CONFIGURATION (all optional) ──────────────────────────── cp .env.example .env Then edit .env. Useful ones: PORT=8000 RATE_LIMIT_PER_MIN=0 0 = unlimited (default) DEEPSEARCH_API_KEY= set to require an X-API-Key header DEEPSEARCH_DEPTH=fast default search depth No third-party API keys are required. Search and synthesis both run keyless. QUICK TEST ────────── curl "http://localhost:8000/health" curl "http://localhost:8000/search?q=test+question&depth=instant"