FactsDB/docker-compose.yml
Jarian Cottingham f4b84cc412 fix: security hardening, code fixes, and infrastructure improvements
- 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
2026-07-05 13:05:08 +00:00

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