.PHONY: install clean db-reset db-seed-fake db-seed-test-users admin-reset admin-rotate-otp \ run run-gunicorn docker-db-reset docker-db-seed-fake docker-db-seed-test-users \ docker-admin-reset docker-admin-rotate-otp docker-build docker-up docker-down docker-logs \ docker-restart docker-db-reset-xplat docker-db-seed-fake-xplat docker-db-seed-test-users-xplat \ docker-admin-reset-xplat docker-admin-rotate-otp-xplat docker-build-xplat docker-up-xplat \ docker-down-xplat docker-logs-xplat cache-clear cache-status cache-keys dev-up dev-down \ prod-build prod-up prod-logs cache-warmup cache-monitor install: pip install -r requirements.txt clean: rm -f ~/.local/share/controles/database.db* rm -f database.db* rm -f data/database.db* rm -f admin_qr.png rm -f data/admin_qr.png rm -f /tmp/admin_qr.png db-reset: clean PYTHONUNBUFFERED=1 python -B scripts/manage.py db_reset # Apenas seed (seed_database.py) db-seed-fake: PYTHONUNBUFFERED=1 python -B scripts/manage.py db_seed_fake # Apenas seed (create_test_users.py) db-seed-test-users: PYTHONUNBUFFERED=1 python -B scripts/manage.py db_seed_test_users # Busca o OTP padrão admin-reset: PYTHONUNBUFFERED=1 python -B scripts/manage.py admin_reset # Novo OTP admin-rotate-otp: PYTHONUNBUFFERED=1 python -B scripts/manage.py admin_rotate_otp # Server padrão do python run: PYTHONUNBUFFERED=1 python -B app.py # server padrão de produção (recomendado) run-gunicorn: PYTHONUNBUFFERED=1 python -B -m gunicorn --bind 0.0.0.0:5000 app:app # Docker commands docker-db-reset: mkdir -p data logs docker-compose -f docker-compose.yml exec app python -B scripts/manage.py db_reset docker-db-seed-fake: docker-compose -f docker-compose.yml exec app python -B scripts/manage.py db_seed_fake docker-db-seed-test-users: docker-compose -f docker-compose.yml exec app python -B scripts/manage.py db_seed_test_users docker-admin-reset: docker-compose -f docker-compose.yml exec app python -B scripts/manage.py admin_reset docker-admin-rotate-otp: docker-compose -f docker-compose.yml exec app python -B scripts/manage.py admin_rotate_otp docker-build: mkdir -p data logs docker-compose -f docker-compose.yml build docker-up: mkdir -p data logs docker-compose -f docker-compose.yml up -d docker-down: docker-compose -f docker-compose.yml down docker-logs: docker-compose -f docker-compose.yml logs -f docker-restart: docker-compose -f docker-compose.yml restart # Docker commands (fallback cross-platform) docker-db-reset-xplat: docker-compose -f docker-compose.crossplatform.yml exec app python -B scripts/manage.py db_reset docker-db-seed-fake-xplat: docker-compose -f docker-compose.crossplatform.yml exec app python -B scripts/manage.py db_seed_fake docker-db-seed-test-users-xplat: docker-compose -f docker-compose.crossplatform.yml exec app python -B scripts/manage.py db_seed_test_users docker-admin-reset-xplat: docker-compose -f docker-compose.crossplatform.yml exec app python -B scripts/manage.py admin_reset docker-admin-rotate-otp-xplat: docker-compose -f docker-compose.crossplatform.yml exec app python -B scripts/manage.py admin_rotate_otp docker-build-xplat: mkdir -p data logs docker-compose -f docker-compose.crossplatform.yml build docker-up-xplat: docker-compose -f docker-compose.crossplatform.yml up -d docker-down-xplat: docker-compose -f docker-compose.crossplatform.yml down docker-logs-xplat: docker-compose -f docker-compose.crossplatform.yml logs -f # Redis cache commands cache-clear: docker-compose -f docker-compose.yml exec redis redis-cli FLUSHDB cache-status: docker-compose -f docker-compose.yml exec redis redis-cli INFO cache-keys: docker-compose -f docker-compose.yml exec redis redis-cli KEYS "*" # Development with Docker dev-up: docker-build docker-up @echo "Development environment started with Redis cache" @echo "Application: http://localhost:5000" dev-down: docker-down @echo "Development environment stopped" # Production commands prod-build: docker-compose -f docker-compose.yml build --no-cache prod-up: docker-compose -f docker-compose.yml up -d prod-logs: docker-compose -f docker-compose.yml logs -f app # Cache management cache-warmup: @echo "Warming up cache..." curl -X GET http://localhost:5000/api/dashboard/stats curl -X GET http://localhost:5000/api/dashboard/militante-stats curl -X GET http://localhost:5000/api/dashboard/financial-stats @echo "Cache warmup completed" cache-monitor: @echo "Monitoring Redis cache..." watch -n 5 'docker-compose -f docker-compose.yml exec redis redis-cli INFO memory'