# Makefile for Proxy Scraping Service # Provides convenient commands for common operations .PHONY: help build up down logs restart clean test immediate admin help: @echo "Proxy Scraping Service - Available Commands:" @echo "" @echo " make build - Build Docker images" @echo " make up - Start all services" @echo " make down - Stop all services" @echo " make logs - View logs (real-time)" @echo " make restart - Restart all services" @echo " make clean - Stop services and remove volumes" @echo " make immediate - Run scraping job immediately" @echo " make admin - Start services with pgAdmin" @echo " make stats - Show database statistics" @echo " make shell - Open shell in scraper container" @echo "" build: docker-compose build --no-cache up: docker-compose up -d @echo "Services started. View logs with: make logs" down: docker-compose down logs: docker-compose logs -f proxy-scraper restart: docker-compose restart clean: docker-compose down -v @echo "All services stopped and volumes removed" immediate: docker-compose exec proxy-scraper python src/main.py --immediate admin: docker-compose --profile admin up -d @echo "Services started with pgAdmin at http://localhost:5050" stats: @docker-compose exec postgres psql -U postgres -d proxies -c "\ SELECT \ COUNT(*) as total_proxies, \ COUNT(*) FILTER (WHERE is_active = TRUE) as active_proxies, \ COUNT(*) FILTER (WHERE is_anonymous = TRUE) as anonymous_proxies, \ COUNT(DISTINCT protocol) as unique_protocols, \ COUNT(DISTINCT country_code) as unique_countries, \ ROUND(AVG(response_time_ms)) as avg_response_time_ms \ FROM proxies;" shell: docker-compose exec proxy-scraper /bin/bash # Setup commands setup: @if [ ! -f .env ]; then \ cp .env.example .env; \ echo ".env file created. Please edit it with your credentials."; \ else \ echo ".env file already exists"; \ fi # Development commands dev-install: python -m venv venv . venv/bin/activate && pip install -r requirements.txt dev-run: @if [ ! -f .env ]; then \ echo "Error: .env file not found. Run 'make setup' first"; \ exit 1; \ fi . venv/bin/activate && export POSTGRES_HOST=localhost && python src/main.py --immediate