# Install FastAPI for System Python 3.8

## Problem
The `requirements.txt` file has packages that require Python 3.10+, but system Python is 3.8.10.

## Solution: Install Core Packages Only

Run these commands to install the essential packages for Python 3.8:

```bash
cd /var/www/html/live_calls/homebook

# Install core FastAPI packages
sudo /usr/bin/python3 -m pip install fastapi uvicorn[standard] websockets python-dotenv

# Install Pydantic (compatible with Python 3.8)
sudo /usr/bin/python3 -m pip install "pydantic>=2.0.0,<3.0.0"

# Install Starlette
sudo /usr/bin/python3 -m pip install starlette

# Install HTTP libraries
sudo /usr/bin/python3 -m pip install aiohttp requests

# Install database connector
sudo /usr/bin/python3 -m pip install mysql-connector-python

# Install audio processing
sudo /usr/bin/python3 -m pip install numpy pydub

# Install system utilities
sudo /usr/bin/python3 -m pip install psutil

# Install JWT
sudo /usr/bin/python3 -m pip install PyJWT

# Install Twilio (if needed)
sudo /usr/bin/python3 -m pip install twilio

# Verify installation
sudo /usr/bin/python3 -c "from fastapi import FastAPI; from fastapi import WebSocket; print('✓ FastAPI installed successfully')"
```

## One-Line Install (All Core Packages)

```bash
cd /var/www/html/live_calls/homebook && sudo /usr/bin/python3 -m pip install fastapi uvicorn[standard] websockets python-dotenv "pydantic>=2.0.0,<3.0.0" starlette aiohttp requests mysql-connector-python numpy pydub psutil PyJWT twilio
```

## Alternative: Use requirements-py38.txt

I've created a Python 3.8 compatible requirements file:

```bash
cd /var/www/html/live_calls/homebook
sudo /usr/bin/python3 -m pip install -r requirements-py38.txt
```

## After Installation

```bash
# Restart the service
sudo systemctl restart websocket_api.service

# Check status
sudo systemctl status websocket_api.service

# View logs
sudo journalctl -u websocket_api.service -n 30 --no-pager
```

## Better Solution: Use pyenv Python in systemd

Instead of installing for system Python, update the service to use pyenv:

```bash
sudo nano /etc/systemd/system/websocket_api.service
```

Change:
```ini
ExecStart=/home/vmc/.pyenv/shims/python3 /var/www/html/live_calls/homebook/main.py
User=vmc
Group=vmc
```

Then:
```bash
sudo systemctl daemon-reload
sudo systemctl restart websocket_api.service
```

This way you can use the full requirements.txt with Python 3.10.

