621734fa0a
Replaced all instances of: - /home/dell/coding/giglez → /path/to/giglez - /home/dell → ~ - leetcrypt → your-username - PreistlyPython → your-username - dell@ → user@ Affected files: - 17 documentation files in docs/ - 2 shell scripts (download_rf_test_datasets.sh, start_web.sh) No functional changes, only path/username sanitization for privacy. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
514 lines
8.5 KiB
Markdown
514 lines
8.5 KiB
Markdown
# GigLez Installation Guide
|
|
|
|
## Quick Start (Recommended)
|
|
|
|
### 1. **Using the Safe Install Script**
|
|
|
|
```bash
|
|
# Navigate to project directory
|
|
cd /path/to/giglez
|
|
|
|
# Create virtual environment and install all dependencies
|
|
./scripts/safe_install.sh --create-venv
|
|
source venv/bin/activate
|
|
./scripts/safe_install.sh --all
|
|
```
|
|
|
|
That's it! The script handles everything automatically.
|
|
|
|
---
|
|
|
|
## Manual Installation (Alternative)
|
|
|
|
### Prerequisites
|
|
|
|
- **Python 3.9+** (check with `python3 --version`)
|
|
- **PostgreSQL 12+** (for database)
|
|
- **Git** (for version control)
|
|
|
|
### Step-by-Step
|
|
|
|
#### 1. **Create Virtual Environment**
|
|
|
|
```bash
|
|
cd /path/to/giglez
|
|
|
|
# Create venv
|
|
python3 -m venv venv
|
|
|
|
# Activate it
|
|
source venv/bin/activate
|
|
|
|
# Verify activation (should show venv path)
|
|
which python
|
|
```
|
|
|
|
#### 2. **Upgrade pip**
|
|
|
|
```bash
|
|
# IMPORTANT: Always upgrade pip first
|
|
python -m pip install --upgrade pip setuptools wheel
|
|
```
|
|
|
|
#### 3. **Install Dependencies**
|
|
|
|
```bash
|
|
# Install all project dependencies
|
|
pip install -r requirements.txt
|
|
|
|
# Or install individually
|
|
pip install fastapi uvicorn sqlalchemy psycopg2-binary loguru
|
|
```
|
|
|
|
#### 4. **Install Optional Dependencies**
|
|
|
|
```bash
|
|
# For development
|
|
pip install pytest black flake8
|
|
|
|
# For ML features (when ready)
|
|
pip install tensorflow lightgbm scikit-learn
|
|
```
|
|
|
|
---
|
|
|
|
## Troubleshooting Common pip Issues
|
|
|
|
### Issue 1: "pip: command not found"
|
|
|
|
**Solution:**
|
|
```bash
|
|
# Install pip
|
|
python3 -m ensurepip --upgrade
|
|
|
|
# Or use system package manager
|
|
sudo apt-get install python3-pip # Ubuntu/Debian
|
|
sudo yum install python3-pip # RHEL/CentOS
|
|
```
|
|
|
|
### Issue 2: "Permission denied" errors
|
|
|
|
**DON'T use sudo pip!** Use virtual environment instead:
|
|
|
|
```bash
|
|
# Create venv if you haven't
|
|
python3 -m venv venv
|
|
source venv/bin/activate
|
|
|
|
# Now install (no sudo needed)
|
|
pip install package_name
|
|
```
|
|
|
|
### Issue 3: "No module named 'pip'"
|
|
|
|
**Solution:**
|
|
```bash
|
|
# Reinstall pip
|
|
python3 -m ensurepip --default-pip
|
|
python3 -m pip install --upgrade pip
|
|
```
|
|
|
|
### Issue 4: psycopg2 compilation errors
|
|
|
|
**Solution:** Use binary version:
|
|
```bash
|
|
pip install psycopg2-binary
|
|
```
|
|
|
|
Or install system dependencies first:
|
|
```bash
|
|
sudo apt-get install libpq-dev python3-dev # Ubuntu/Debian
|
|
sudo yum install postgresql-devel python3-devel # RHEL/CentOS
|
|
```
|
|
|
|
### Issue 5: "ERROR: Could not find a version that satisfies the requirement"
|
|
|
|
**Solution:**
|
|
```bash
|
|
# Update pip
|
|
pip install --upgrade pip
|
|
|
|
# Try with --upgrade flag
|
|
pip install --upgrade package_name
|
|
|
|
# Check Python version compatibility
|
|
python --version # Must be 3.9+
|
|
```
|
|
|
|
### Issue 6: Dependency conflicts
|
|
|
|
**Solution:**
|
|
```bash
|
|
# Use our safe install script
|
|
./scripts/safe_install.sh package_name
|
|
|
|
# Or create fresh environment
|
|
deactivate
|
|
rm -rf venv
|
|
python3 -m venv venv
|
|
source venv/bin/activate
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
---
|
|
|
|
## Safe Install Script Usage
|
|
|
|
### Basic Commands
|
|
|
|
```bash
|
|
# Check environment
|
|
./scripts/safe_install.sh --check
|
|
|
|
# Install single package
|
|
./scripts/safe_install.sh requests
|
|
|
|
# Install specific version
|
|
./scripts/safe_install.sh requests 2.28.0
|
|
|
|
# Install from requirements.txt
|
|
./scripts/safe_install.sh --all
|
|
|
|
# Install from custom requirements file
|
|
./scripts/safe_install.sh -r requirements-dev.txt
|
|
```
|
|
|
|
### Advanced Features
|
|
|
|
```bash
|
|
# Create backup before installing
|
|
./scripts/safe_install.sh --backup
|
|
|
|
# Security scan
|
|
./scripts/safe_install.sh --scan
|
|
|
|
# Resolve dependencies
|
|
./scripts/safe_install.sh --resolve
|
|
|
|
# Rollback to previous state
|
|
./scripts/safe_install.sh --rollback .pip_backups/installed_packages_20260115_123456.txt
|
|
```
|
|
|
|
### What the Script Does
|
|
|
|
✅ **Automatic Virtual Environment**
|
|
- Detects if venv exists
|
|
- Creates new one if needed
|
|
- Activates automatically
|
|
|
|
✅ **Dependency Checking**
|
|
- Checks for conflicts before installing
|
|
- Dry-run simulation
|
|
- Asks for confirmation
|
|
|
|
✅ **Backup & Rollback**
|
|
- Saves package list before changes
|
|
- Can restore previous state
|
|
- Timestamped backups
|
|
|
|
✅ **Verification**
|
|
- Verifies installation after completion
|
|
- Checks package integrity
|
|
- Reports errors clearly
|
|
|
|
---
|
|
|
|
## Database Setup
|
|
|
|
### 1. **Install PostgreSQL**
|
|
|
|
```bash
|
|
# Ubuntu/Debian
|
|
sudo apt-get install postgresql postgresql-contrib postgis
|
|
|
|
# macOS
|
|
brew install postgresql postgis
|
|
|
|
# Verify installation
|
|
psql --version
|
|
```
|
|
|
|
### 2. **Create Database**
|
|
|
|
```bash
|
|
# Switch to postgres user
|
|
sudo -u postgres psql
|
|
|
|
# In psql prompt:
|
|
CREATE DATABASE giglez;
|
|
CREATE USER giglez_user WITH PASSWORD 'your_secure_password';
|
|
GRANT ALL PRIVILEGES ON DATABASE giglez TO giglez_user;
|
|
|
|
# Enable PostGIS extension
|
|
\c giglez
|
|
CREATE EXTENSION postgis;
|
|
\q
|
|
```
|
|
|
|
### 3. **Configure Environment**
|
|
|
|
Create `.env.development`:
|
|
|
|
```bash
|
|
cp .env.example .env.development
|
|
|
|
# Edit with your database credentials
|
|
nano .env.development
|
|
```
|
|
|
|
```env
|
|
# Database
|
|
DATABASE_URL=postgresql://giglez_user:your_secure_password@localhost:5432/giglez
|
|
|
|
# Other settings...
|
|
```
|
|
|
|
### 4. **Run Migrations**
|
|
|
|
```bash
|
|
# Create tables
|
|
python scripts/create_schema.sql
|
|
|
|
# Or use Alembic (if configured)
|
|
alembic upgrade head
|
|
```
|
|
|
|
---
|
|
|
|
## Optional Components
|
|
|
|
### RTL_433 (for RF signal decoding)
|
|
|
|
```bash
|
|
# Ubuntu/Debian
|
|
sudo apt-get install rtl_433
|
|
|
|
# macOS
|
|
brew install rtl_433
|
|
|
|
# Build from source
|
|
git clone https://github.com/merbanan/rtl_433.git
|
|
cd rtl_433
|
|
mkdir build && cd build
|
|
cmake ..
|
|
make
|
|
sudo make install
|
|
```
|
|
|
|
### Security Tools
|
|
|
|
```bash
|
|
# Install safety for security scanning
|
|
pip install safety
|
|
|
|
# Run security check
|
|
safety check
|
|
```
|
|
|
|
### Development Tools
|
|
|
|
```bash
|
|
# Code formatting
|
|
pip install black isort
|
|
|
|
# Linting
|
|
pip install flake8 pylint
|
|
|
|
# Type checking
|
|
pip install mypy
|
|
```
|
|
|
|
---
|
|
|
|
## Verifying Installation
|
|
|
|
### 1. **Check Python Packages**
|
|
|
|
```bash
|
|
# List installed packages
|
|
pip list
|
|
|
|
# Check specific package
|
|
pip show fastapi
|
|
|
|
# Verify all requirements
|
|
pip check
|
|
```
|
|
|
|
### 2. **Test Database Connection**
|
|
|
|
```bash
|
|
# Quick test
|
|
python3 << EOF
|
|
from sqlalchemy import create_engine
|
|
engine = create_engine('postgresql://giglez_user:password@localhost:5432/giglez')
|
|
connection = engine.connect()
|
|
print("✓ Database connection successful!")
|
|
connection.close()
|
|
EOF
|
|
```
|
|
|
|
### 3. **Test API Server**
|
|
|
|
```bash
|
|
# Start development server
|
|
uvicorn src.api.main:app --reload
|
|
|
|
# In another terminal, test endpoint
|
|
curl http://localhost:8000/health
|
|
|
|
# Should return: {"status":"ok"}
|
|
```
|
|
|
|
### 4. **Run Tests**
|
|
|
|
```bash
|
|
# Run all tests
|
|
pytest
|
|
|
|
# With coverage
|
|
pytest --cov=src tests/
|
|
|
|
# Specific test file
|
|
pytest tests/test_parser.py
|
|
```
|
|
|
|
---
|
|
|
|
## Environment Management
|
|
|
|
### Activating Virtual Environment
|
|
|
|
```bash
|
|
# Every time you work on the project:
|
|
cd /path/to/giglez
|
|
source venv/bin/activate
|
|
|
|
# Verify activation
|
|
which python # Should show venv path
|
|
```
|
|
|
|
### Deactivating
|
|
|
|
```bash
|
|
deactivate
|
|
```
|
|
|
|
### Updating Dependencies
|
|
|
|
```bash
|
|
# Update single package
|
|
pip install --upgrade package_name
|
|
|
|
# Update all packages (careful!)
|
|
pip list --outdated
|
|
pip install --upgrade -r requirements.txt
|
|
|
|
# Safer: use safe_install script
|
|
./scripts/safe_install.sh --all
|
|
```
|
|
|
|
### Freezing Dependencies
|
|
|
|
```bash
|
|
# Save current package versions
|
|
pip freeze > requirements-lock.txt
|
|
|
|
# Install exact versions later
|
|
pip install -r requirements-lock.txt
|
|
```
|
|
|
|
---
|
|
|
|
## Docker Alternative (Optional)
|
|
|
|
If you prefer Docker:
|
|
|
|
```bash
|
|
# Build image
|
|
docker build -t giglez:latest .
|
|
|
|
# Run container
|
|
docker run -p 8000:8000 --env-file .env.development giglez:latest
|
|
|
|
# With database
|
|
docker-compose up
|
|
```
|
|
|
|
---
|
|
|
|
## Next Steps
|
|
|
|
After installation:
|
|
|
|
1. ✅ **Configure environment** - Edit `.env.development`
|
|
2. ✅ **Setup database** - Create tables and extensions
|
|
3. ✅ **Import test data** - Run dataset download script
|
|
4. ✅ **Start dev server** - `uvicorn src.api.main:app --reload`
|
|
5. ✅ **Open browser** - Visit `http://localhost:8000/docs`
|
|
|
|
---
|
|
|
|
## Getting Help
|
|
|
|
### Check Logs
|
|
|
|
```bash
|
|
# Application logs
|
|
tail -f logs/app.log
|
|
|
|
# Error logs
|
|
tail -f logs/error.log
|
|
|
|
# Upload logs (during beta)
|
|
tail -f logs/uploads/uploads_$(date +%Y-%m-%d).log
|
|
```
|
|
|
|
### Common Commands
|
|
|
|
```bash
|
|
# Check what's using port 8000
|
|
lsof -i :8000
|
|
|
|
# Kill process on port 8000
|
|
kill $(lsof -t -i:8000)
|
|
|
|
# Check Python path
|
|
python -c "import sys; print(sys.path)"
|
|
|
|
# Check installed package location
|
|
python -c "import fastapi; print(fastapi.__file__)"
|
|
```
|
|
|
|
### Reinstall from Scratch
|
|
|
|
```bash
|
|
# Deactivate if active
|
|
deactivate
|
|
|
|
# Remove virtual environment
|
|
rm -rf venv
|
|
|
|
# Remove pip cache
|
|
rm -rf ~/.cache/pip
|
|
|
|
# Start fresh
|
|
python3 -m venv venv
|
|
source venv/bin/activate
|
|
pip install --upgrade pip
|
|
pip install -r requirements.txt
|
|
```
|
|
|
|
---
|
|
|
|
## Support
|
|
|
|
- **Documentation:** `/docs` directory
|
|
- **Issues:** GitHub Issues
|
|
- **Email:** support@giglez.com
|
|
|
|
---
|
|
|
|
**Last Updated:** 2026-01-16
|
|
**Tested On:** Ubuntu 22.04, macOS 13, Python 3.9-3.11
|