db updates
This commit is contained in:
+181
@@ -0,0 +1,181 @@
|
||||
# NFOGuard Deployment Guide
|
||||
|
||||
## 🚀 Quick Start for Docker Deployment
|
||||
|
||||
### Step 1: Environment Configuration
|
||||
```bash
|
||||
# Copy the environment template
|
||||
cp .env.template .env
|
||||
|
||||
# Edit with your specific paths and database credentials
|
||||
nano .env
|
||||
```
|
||||
|
||||
**Key variables to customize in `.env`**:
|
||||
```bash
|
||||
# YOUR MEDIA PATHS (adjust these to your setup)
|
||||
TV_PATHS=/media/TV/tv,/media/TV/tv6
|
||||
MOVIE_PATHS=/media/Movies/movies,/media/Movies/movies6
|
||||
HOST_MEDIA_PATH=/mnt/unionfs/Media
|
||||
|
||||
# YOUR RADARR DATABASE PASSWORD
|
||||
RADARR_DB_PASSWORD=your_actual_password_here
|
||||
```
|
||||
|
||||
### Step 2: Deploy with Docker Compose
|
||||
```bash
|
||||
# Start NFOGuard
|
||||
docker-compose up -d
|
||||
|
||||
# Check logs
|
||||
docker-compose logs -f nfoguard
|
||||
```
|
||||
|
||||
### Step 3: Test Database Connection
|
||||
```bash
|
||||
# Test Radarr database connectivity
|
||||
curl -X POST "http://localhost:8080/test/bulk-update"
|
||||
|
||||
# Expected response:
|
||||
# {"status": "success", "movies_with_imdb": 1500, "database_type": "postgresql"}
|
||||
```
|
||||
|
||||
### Step 4: Test Movie Discovery
|
||||
```bash
|
||||
# Test that your movie paths are correctly configured
|
||||
curl -X POST "http://localhost:8080/test/movie-scan"
|
||||
|
||||
# Expected response:
|
||||
# {"status": "success", "message": "Movie scan test found 1500 movies",
|
||||
# "path_results": [{"path": "/media/Movies/movies", "exists": true, "movies_found": 800}, ...]}
|
||||
```
|
||||
|
||||
### Step 5: Validate Database Performance
|
||||
```bash
|
||||
# Test the optimized database query performance
|
||||
curl "http://localhost:8080/debug/movie/tt1674782"
|
||||
|
||||
# Expected response with July 2025 date:
|
||||
# {"detected_import_date": "2025-07-08T03:30:04+00:00", "import_source": "radarr:history.import"}
|
||||
```
|
||||
|
||||
## 📊 Production Workflow
|
||||
|
||||
### Manual Operations (via webhooks)
|
||||
|
||||
**1. Manual Movie Scan**
|
||||
```bash
|
||||
curl -X POST "http://localhost:8080/manual/scan?scan_type=movies"
|
||||
```
|
||||
|
||||
**2. Bulk Update All Movies**
|
||||
```bash
|
||||
curl -X POST "http://localhost:8080/bulk/update"
|
||||
```
|
||||
|
||||
**3. System Health Check**
|
||||
```bash
|
||||
curl "http://localhost:8080/health"
|
||||
```
|
||||
|
||||
**4. Database Statistics**
|
||||
```bash
|
||||
curl "http://localhost:8080/stats"
|
||||
```
|
||||
|
||||
**5. Debug Specific Movie**
|
||||
```bash
|
||||
curl "http://localhost:8080/debug/movie/tt1674782"
|
||||
```
|
||||
|
||||
### Radarr Webhook Integration
|
||||
|
||||
**Add to Radarr → Settings → Connect → Webhook:**
|
||||
- **Name**: NFOGuard
|
||||
- **URL**: `http://nfoguard:8080/webhook/radarr`
|
||||
- **Method**: POST
|
||||
- **Events**: On Download, On Upgrade, On Rename
|
||||
|
||||
NFOGuard will automatically process movies when Radarr sends webhooks.
|
||||
|
||||
## 🔧 Environment Variables Reference
|
||||
|
||||
### Required Variables
|
||||
| Variable | Description | Example |
|
||||
|----------|-------------|---------|
|
||||
| `MOVIE_PATHS` | Comma-separated movie directories | `/media/Movies/movies,/media/Movies/movies6` |
|
||||
| `TV_PATHS` | Comma-separated TV directories | `/media/TV/tv,/media/TV/tv6` |
|
||||
| `RADARR_DB_HOST` | Radarr PostgreSQL host | `radarr-postgres` |
|
||||
| `RADARR_DB_PASSWORD` | Radarr database password | `your_password` |
|
||||
|
||||
### Optional Variables
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
| `HOST_MEDIA_PATH` | `/mnt/unionfs/Media` | Host path mounted to `/media` |
|
||||
| `DB_PATH` | `/app/data/media_dates.db` | NFOGuard database location |
|
||||
| `MANAGE_NFO` | `true` | Create/update .nfo files |
|
||||
| `FIX_DIR_MTIMES` | `true` | Fix file modification times |
|
||||
| `MOVIE_PRIORITY` | `import_then_digital` | Date preference strategy |
|
||||
| `DEBUG` | `false` | Enable debug logging |
|
||||
|
||||
## 🏗 Docker Compose Customization
|
||||
|
||||
**For different media structures:**
|
||||
```yaml
|
||||
# Example: Different media structure
|
||||
services:
|
||||
nfoguard:
|
||||
environment:
|
||||
- TV_PATHS=/storage/tv_shows,/storage/anime
|
||||
- MOVIE_PATHS=/storage/movies
|
||||
volumes:
|
||||
- "/storage:/storage:rw"
|
||||
- "./data:/app/data"
|
||||
```
|
||||
|
||||
**For external database networks:**
|
||||
```yaml
|
||||
# Example: Connect to existing Radarr network
|
||||
services:
|
||||
nfoguard:
|
||||
networks:
|
||||
- radarr_network
|
||||
|
||||
networks:
|
||||
radarr_network:
|
||||
external: true
|
||||
```
|
||||
|
||||
## 🛠 Troubleshooting
|
||||
|
||||
### "0 movies processed"
|
||||
1. Check paths: `curl -X POST "http://localhost:8080/test/movie-scan"`
|
||||
2. Verify environment variables in `.env`
|
||||
3. Ensure directories exist and have IMDb tags: `Movie Name [imdb-tt1234567] (2023)`
|
||||
|
||||
### Database connection errors
|
||||
1. Test connection: `curl -X POST "http://localhost:8080/test/bulk-update"`
|
||||
2. Verify `RADARR_DB_*` variables
|
||||
3. Check Docker network connectivity
|
||||
|
||||
### Performance issues
|
||||
1. Check health: `curl "http://localhost:8080/health"`
|
||||
2. Monitor logs: `docker-compose logs -f nfoguard`
|
||||
3. Verify database query performance: `curl "http://localhost:8080/debug/movie/tt1674782"`
|
||||
|
||||
## 📈 Monitoring
|
||||
|
||||
**Health Check Endpoint**: `GET /health`
|
||||
- Server status and uptime
|
||||
- Database connectivity
|
||||
- Radarr database status
|
||||
|
||||
**Statistics Endpoint**: `GET /stats`
|
||||
- Movie/TV counts
|
||||
- Processing statistics
|
||||
|
||||
**Batch Queue Status**: `GET /batch/status`
|
||||
- Pending webhook events
|
||||
- Processing queue status
|
||||
|
||||
This deployment approach ensures NFOGuard can be easily configured for any media server setup while maintaining the database-only performance optimizations.
|
||||
Reference in New Issue
Block a user