DeepSeek-V3/nairobi-info-collector/docker-compose.yml
Claude e44e45bfc5
Add Nairobi Information Collector application
Comprehensive intelligence retrieval system for collecting and aggregating
information about Nairobi, Kenya from multiple sources.

Features:
- Multi-source data collection (news, social media, government, tourism, business)
- RESTful API with FastAPI
- Automated scheduling for continuous data collection
- Intelligence brief generation
- Real-time trending topics tracking
- Alert system for important updates
- Web scraping with rate limiting and caching
- Social media integration (Twitter, Instagram)
- NLP-powered categorization and processing
- Docker support for easy deployment
- CLI for manual operations

Components:
- Data models with SQLAlchemy
- Base collector class with extensible architecture
- Source-specific collectors (news, social, government, tourism, business)
- Data processor for brief generation
- Scheduler for automated collection
- Comprehensive API endpoints
- CLI interface for manual control

Documentation:
- Complete README with setup instructions
- Quick start guide
- Example usage scripts
- Docker Compose configuration
- Environment configuration templates
2025-11-21 02:06:23 +00:00

73 lines
1.5 KiB
YAML

version: '3.8'
services:
# PostgreSQL Database
db:
image: postgres:15-alpine
container_name: nairobi_db
environment:
POSTGRES_USER: nairobiuser
POSTGRES_PASSWORD: nairobipass
POSTGRES_DB: nairobi_info
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
- "5432:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U nairobiuser"]
interval: 10s
timeout: 5s
retries: 5
# Redis Cache
redis:
image: redis:7-alpine
container_name: nairobi_redis
ports:
- "6379:6379"
volumes:
- redis_data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
# Main Application
app:
build: .
container_name: nairobi_app
ports:
- "8000:8000"
environment:
- DATABASE_URL=postgresql://nairobiuser:nairobipass@db:5432/nairobi_info
- REDIS_URL=redis://redis:6379/0
- ENVIRONMENT=production
- DEBUG=False
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
volumes:
- ./logs:/app/logs
- ./.env:/app/.env
restart: unless-stopped
# Nginx Reverse Proxy (optional)
nginx:
image: nginx:alpine
container_name: nairobi_nginx
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- app
restart: unless-stopped
volumes:
postgres_data:
redis_data: