first commit
This commit is contained in:
131
Docker-README.md
Normal file
131
Docker-README.md
Normal file
@@ -0,0 +1,131 @@
|
||||
# ParentZone Downloader Docker Setup
|
||||
|
||||
This Docker setup runs the ParentZone snapshot downloaders automatically every day at 2:00 AM.
|
||||
|
||||
## Quick Start
|
||||
|
||||
1. **Copy the example config file and customize it:**
|
||||
```bash
|
||||
cp config.json.example config.json
|
||||
# Edit config.json with your credentials and preferences
|
||||
```
|
||||
|
||||
2. **Build and run with Docker Compose:**
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
## Configuration Methods
|
||||
|
||||
### Method 1: Using config.json (Recommended)
|
||||
Edit `config.json` with your ParentZone credentials:
|
||||
```json
|
||||
{
|
||||
"api_url": "https://api.parentzone.me",
|
||||
"output_dir": "snapshots",
|
||||
"api_key": "your-api-key-here",
|
||||
"email": "your-email@example.com",
|
||||
"password": "your-password",
|
||||
"date_from": "2021-01-01",
|
||||
"date_to": null,
|
||||
"type_ids": [15],
|
||||
"max_pages": null,
|
||||
"debug_mode": false
|
||||
}
|
||||
```
|
||||
|
||||
### Method 2: Using Environment Variables
|
||||
Create a `.env` file:
|
||||
```bash
|
||||
API_KEY=your-api-key-here
|
||||
EMAIL=your-email@example.com
|
||||
PASSWORD=your-password
|
||||
TZ=America/New_York
|
||||
```
|
||||
|
||||
## Schedule Configuration
|
||||
|
||||
The downloaders run daily at 2:00 AM by default. To change this:
|
||||
|
||||
1. Edit the `crontab` file
|
||||
2. Rebuild the Docker image: `docker-compose build`
|
||||
3. Restart: `docker-compose up -d`
|
||||
|
||||
## File Organization
|
||||
|
||||
```
|
||||
./
|
||||
├── snapshots/ # Generated HTML reports
|
||||
├── logs/ # Scheduler and downloader logs
|
||||
├── config.json # Main configuration
|
||||
├── Dockerfile
|
||||
├── docker-compose.yml
|
||||
└── scheduler.sh # Daily execution script
|
||||
```
|
||||
|
||||
## Monitoring
|
||||
|
||||
### View logs in real-time:
|
||||
```bash
|
||||
docker-compose logs -f
|
||||
```
|
||||
|
||||
### Check scheduler logs:
|
||||
```bash
|
||||
docker exec parentzone-downloader tail -f /app/logs/scheduler_$(date +%Y%m%d).log
|
||||
```
|
||||
|
||||
### View generated reports:
|
||||
HTML files are saved in the `./snapshots/` directory and can be opened in any web browser.
|
||||
|
||||
## Maintenance
|
||||
|
||||
### Update the container:
|
||||
```bash
|
||||
docker-compose down
|
||||
docker-compose build
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
### Manual run (for testing):
|
||||
```bash
|
||||
docker exec parentzone-downloader /app/scheduler.sh
|
||||
```
|
||||
|
||||
### Cleanup old files:
|
||||
The system automatically:
|
||||
- Keeps logs for 30 days
|
||||
- Keeps HTML reports for 90 days
|
||||
- Limits cron.log to 50MB
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Check if cron is running:
|
||||
```bash
|
||||
docker exec parentzone-downloader pgrep cron
|
||||
```
|
||||
|
||||
### View cron logs:
|
||||
```bash
|
||||
docker exec parentzone-downloader tail -f /var/log/cron.log
|
||||
```
|
||||
|
||||
### Test configuration:
|
||||
```bash
|
||||
docker exec parentzone-downloader python3 config_snapshot_downloader.py --config /app/config.json --max-pages 1
|
||||
```
|
||||
|
||||
## Security Notes
|
||||
|
||||
- Keep your `config.json` file secure and don't commit it to version control
|
||||
- Consider using environment variables for sensitive credentials
|
||||
- The Docker container runs with minimal privileges
|
||||
- Network access is only required for ParentZone API calls
|
||||
|
||||
## Volume Persistence
|
||||
|
||||
Data is persisted in:
|
||||
- `./snapshots/` - Generated HTML reports
|
||||
- `./logs/` - Application logs
|
||||
|
||||
These directories are automatically created and mounted as Docker volumes.
|
||||
Reference in New Issue
Block a user