Spaces:
Paused
Paused
# Legal Dashboard OCR - Deployment Guide | |
## Quick Start | |
### Using Docker Compose (Recommended) | |
1. **Build and run the application:** | |
```bash | |
cd legal_dashboard_ocr | |
docker-compose up --build | |
``` | |
2. **Access the application:** | |
- Open your browser and go to: `http://localhost:7860` | |
- The application will be available on port 7860 | |
### Using Docker directly | |
1. **Build the Docker image:** | |
```bash | |
cd legal_dashboard_ocr | |
docker build -t legal-dashboard-ocr . | |
``` | |
2. **Run the container:** | |
```bash | |
docker run -p 7860:7860 -v $(pwd)/data:/app/data -v $(pwd)/cache:/app/cache legal-dashboard-ocr | |
``` | |
## Troubleshooting | |
### Database Connection Issues | |
If you encounter database connection errors: | |
1. **Check if the data directory exists:** | |
```bash | |
docker exec -it <container_name> ls -la /app/data | |
``` | |
2. **Create the data directory manually:** | |
```bash | |
docker exec -it <container_name> mkdir -p /app/data | |
docker exec -it <container_name> chmod 777 /app/data | |
``` | |
3. **Test database connection:** | |
```bash | |
docker exec -it <container_name> python debug_container.py | |
``` | |
### OCR Model Issues | |
If OCR models fail to load: | |
1. **Check available models:** | |
The application will automatically try these models in order: | |
- `microsoft/trocr-base-stage1` | |
- `microsoft/trocr-base-handwritten` | |
- `microsoft/trocr-small-stage1` | |
- `microsoft/trocr-small-handwritten` | |
2. **Set Hugging Face token (optional):** | |
```bash | |
export HF_TOKEN=your_huggingface_token | |
docker run -e HF_TOKEN=$HF_TOKEN -p 7860:7860 legal-dashboard-ocr | |
``` | |
### Container Logs | |
To view container logs: | |
```bash | |
docker-compose logs -f | |
``` | |
Or for direct Docker: | |
```bash | |
docker logs <container_name> -f | |
``` | |
## Environment Variables | |
| Variable | Default | Description | | |
|----------|---------|-------------| | |
| `DATABASE_PATH` | `/app/data/legal_dashboard.db` | SQLite database path | | |
| `TRANSFORMERS_CACHE` | `/app/cache` | Hugging Face cache directory | | |
| `HF_HOME` | `/app/cache` | Hugging Face home directory | | |
| `HF_TOKEN` | (not set) | Hugging Face authentication token | | |
## Volume Mounts | |
The application uses these volume mounts for persistent data: | |
- `./data:/app/data` - Database and uploaded files | |
- `./cache:/app/cache` - Hugging Face model cache | |
## Health Check | |
The application includes a health check endpoint: | |
- URL: `http://localhost:7860/health` | |
- Returns status of OCR, database, and AI services | |
## Common Issues and Solutions | |
### Issue: "unable to open database file" | |
**Solution:** | |
1. Ensure the data directory exists and has proper permissions | |
2. Check if the volume mount is working correctly | |
3. Run the debug script: `docker exec -it <container> python debug_container.py` | |
### Issue: OCR models fail to load | |
**Solution:** | |
1. The application will automatically fall back to basic text extraction | |
2. Check internet connectivity for model downloads | |
3. Set HF_TOKEN if you have Hugging Face access | |
### Issue: Container fails to start | |
**Solution:** | |
1. Check Docker logs: `docker logs <container_name>` | |
2. Ensure port 7860 is not already in use | |
3. Verify Docker has enough resources (memory/disk) | |
## Development | |
### Local Development | |
1. **Install dependencies:** | |
```bash | |
pip install -r requirements.txt | |
``` | |
2. **Run locally:** | |
```bash | |
python -m uvicorn app.main:app --host 0.0.0.0 --port 7860 | |
``` | |
### Testing | |
1. **Test database connection:** | |
```bash | |
python test_db_connection.py | |
``` | |
2. **Test container environment:** | |
```bash | |
docker run --rm legal-dashboard-ocr python debug_container.py | |
``` | |
## Performance Optimization | |
1. **Model caching:** The application caches Hugging Face models in `/app/cache` | |
2. **Database optimization:** SQLite database is optimized for concurrent access | |
3. **Memory usage:** Consider increasing Docker memory limits for large models | |
## Security Considerations | |
1. **Database security:** SQLite database is stored in a volume mount | |
2. **API security:** Consider adding authentication for production use | |
3. **File uploads:** Implement file size limits and type validation | |
## Monitoring | |
The application provides: | |
- Health check endpoint: `/health` | |
- Real-time logs via Docker | |
- System metrics in the database | |
## Support | |
For issues not covered in this guide: | |
1. Check the application logs | |
2. Run the debug script | |
3. Verify Docker and system resources |