148 lines
3.9 KiB
Markdown
148 lines
3.9 KiB
Markdown
# Readur Deployment Summary
|
|
|
|
## ✅ What's Been Implemented
|
|
|
|
### 🐳 **Complete Docker Support**
|
|
- Multi-stage Docker builds for production
|
|
- Production-ready docker-compose.yml configurations
|
|
- Support for environment-based configuration
|
|
- Health checks and resource limits
|
|
- SSL/HTTPS reverse proxy examples
|
|
|
|
### 📁 **Advanced Watch Folder System**
|
|
- **Cross-filesystem compatibility**: NFS, SMB, S3, local storage
|
|
- **Hybrid watching strategy**: Auto-detects filesystem type
|
|
- **Smart file processing**: Duplicate detection, stability checks
|
|
- **Configurable**: 5+ environment variables for fine-tuning
|
|
|
|
### ⚙️ **Comprehensive Configuration**
|
|
- **25+ environment variables** for complete customization
|
|
- **Production examples** for all major deployment scenarios
|
|
- **Network filesystem optimization** settings
|
|
- **OCR and performance tuning** options
|
|
|
|
## 🚀 Quick Deployment
|
|
|
|
### Development
|
|
```bash
|
|
git clone <repo>
|
|
cd readur
|
|
docker compose up --build -d
|
|
# Access: http://localhost:8000
|
|
```
|
|
|
|
### Production
|
|
```bash
|
|
# Generate secure secrets
|
|
JWT_SECRET=$(openssl rand -base64 64)
|
|
DB_PASSWORD=$(openssl rand -base64 32)
|
|
|
|
# Create .env file
|
|
cat > .env << EOF
|
|
JWT_SECRET=${JWT_SECRET}
|
|
DB_PASSWORD=${DB_PASSWORD}
|
|
EOF
|
|
|
|
# Deploy with production config
|
|
docker compose -f docker-compose.prod.yml --env-file .env up -d
|
|
```
|
|
|
|
## 🔧 Key Environment Variables
|
|
|
|
### Essential (Required for Production)
|
|
```bash
|
|
JWT_SECRET=your-secure-random-key
|
|
DATABASE_URL=postgresql://user:pass@host:port/db
|
|
```
|
|
|
|
### Watch Folder (Network Mounts)
|
|
```bash
|
|
WATCH_FOLDER=/mnt/nfs/documents
|
|
WATCH_INTERVAL_SECONDS=60
|
|
FORCE_POLLING_WATCH=1
|
|
FILE_STABILITY_CHECK_MS=1000
|
|
```
|
|
|
|
### Performance Optimization
|
|
```bash
|
|
CONCURRENT_OCR_JOBS=8
|
|
MAX_FILE_SIZE_MB=200
|
|
MEMORY_LIMIT_MB=2048
|
|
OCR_TIMEOUT_SECONDS=600
|
|
```
|
|
|
|
## 🌐 Network Filesystem Examples
|
|
|
|
### NFS Mount
|
|
```yaml
|
|
volumes:
|
|
- /mnt/nfs/docs:/app/watch
|
|
environment:
|
|
- WATCH_INTERVAL_SECONDS=60
|
|
- FORCE_POLLING_WATCH=1
|
|
```
|
|
|
|
### SMB/CIFS Mount
|
|
```yaml
|
|
volumes:
|
|
- /mnt/smb/shared:/app/watch
|
|
environment:
|
|
- WATCH_INTERVAL_SECONDS=30
|
|
- FILE_STABILITY_CHECK_MS=2000
|
|
```
|
|
|
|
### S3 Mount (s3fs)
|
|
```yaml
|
|
volumes:
|
|
- /mnt/s3/bucket:/app/watch
|
|
environment:
|
|
- WATCH_INTERVAL_SECONDS=120
|
|
- FILE_STABILITY_CHECK_MS=5000
|
|
- FORCE_POLLING_WATCH=1
|
|
```
|
|
|
|
## 📊 Configuration Summary
|
|
|
|
| Category | Variables | Purpose |
|
|
|----------|-----------|---------|
|
|
| **Core** | 3 vars | Database, auth, server binding |
|
|
| **File Storage** | 2 vars | Upload paths and file types |
|
|
| **Watch Folder** | 5 vars | Cross-filesystem monitoring |
|
|
| **OCR Processing** | 4 vars | Language, jobs, timeouts, limits |
|
|
| **Performance** | 2 vars | Memory and CPU optimization |
|
|
| **Search & UI** | 10+ vars | Via web interface settings |
|
|
|
|
## 🔒 Security Features
|
|
|
|
- JWT-based authentication with configurable secrets
|
|
- Bcrypt password hashing
|
|
- File type restrictions
|
|
- Size limits and timeouts
|
|
- Non-destructive file processing (originals preserved)
|
|
- Configurable data retention policies
|
|
|
|
## 📈 Scalability Features
|
|
|
|
- Concurrent OCR processing (configurable)
|
|
- Resource limits and priorities
|
|
- Background job queues
|
|
- Database optimization for full-text search
|
|
- Efficient file storage with optional compression
|
|
|
|
## 🛠️ Operations Support
|
|
|
|
- **Health checks**: Built-in endpoint for monitoring
|
|
- **Logging**: Structured logging with configurable levels
|
|
- **Metrics**: Queue statistics and processing metrics
|
|
- **Backup scripts**: Database and file backup examples
|
|
- **Monitoring**: Docker stats and log analysis commands
|
|
|
|
## 📚 Documentation
|
|
|
|
- **README.md**: Complete deployment and usage guide
|
|
- **WATCH_FOLDER.md**: Detailed watch folder documentation
|
|
- **Docker examples**: Production-ready configurations
|
|
- **API documentation**: Complete REST API reference
|
|
- **Troubleshooting**: Common issues and solutions
|
|
|
|
All components are production-ready with comprehensive configuration options for enterprise deployment scenarios! 🎉 |