- Replace eval() with json.loads() in database.py (RCE fix) - Use json.dumps() for safe storage of list fields - Add API key authentication middleware - Remove hardcoded credentials, require env vars - Disable Flask debug mode - Restrict FTP homedir to /app/data with read-only perms - Fix threading: Lock -> RLock, add WAL mode - Fix API calls to use correct DatabaseManager methods - Fix main.py FTP method names - Fix click.click.echo typo - Implement scheduler _run_all_jobs - Add __main__.py for module execution - Pin dependency versions - Use .env vars in docker-compose, read-only DB for FTP - Implement AI text chunking with overlap windows - Add schema validation for AI responses - Skip unsupported file types instead of fallback
37 lines
852 B
YAML
37 lines
852 B
YAML
version: '3.8'
|
|
|
|
services:
|
|
factsdb:
|
|
build: .
|
|
ports:
|
|
- "5000:5000"
|
|
- "2122:2121"
|
|
volumes:
|
|
- ./facts.db:/app/facts.db
|
|
- ./data:/app/data
|
|
environment:
|
|
- FTP_HOST=0.0.0.0
|
|
- FTP_PORT=2121
|
|
- FTP_USERNAME=${FTP_USERNAME}
|
|
- FTP_PASSWORD=${FTP_PASSWORD}
|
|
- AI_ENDPOINT_URL=${AI_ENDPOINT_URL}
|
|
- AI_ENDPOINT_TOKEN=${AI_ENDPOINT_TOKEN}
|
|
- DATABASE_PATH=/app/facts.db
|
|
- API_KEY=${API_KEY}
|
|
restart: unless-stopped
|
|
command: python -m factsdb api
|
|
|
|
ftp:
|
|
build: .
|
|
ports:
|
|
- "2123:2121"
|
|
volumes:
|
|
- ./data:/app/data
|
|
- ./facts.db:/app/facts.db:ro
|
|
environment:
|
|
- FTP_HOST=0.0.0.0
|
|
- FTP_PORT=2121
|
|
- FTP_USERNAME=${FTP_USERNAME}
|
|
- FTP_PASSWORD=${FTP_PASSWORD}
|
|
restart: unless-stopped
|
|
command: python -m factsdb ftp |