punimtag/scripts/README.md
tanyar09 7a981b069a
All checks were successful
CI / skip-ci-check (pull_request) Successful in 8s
CI / lint-and-type-check (pull_request) Successful in 1m12s
CI / python-lint (pull_request) Successful in 36s
CI / test-backend (pull_request) Successful in 3m47s
CI / build (pull_request) Successful in 3m28s
CI / secret-scanning (pull_request) Successful in 14s
CI / dependency-scan (pull_request) Successful in 13s
CI / sast-scan (pull_request) Successful in 1m33s
CI / workflow-summary (pull_request) Successful in 5s
feat: Enhance logging and error handling for job streaming and photo uploads
- Added new logging scripts for quick access to service logs and troubleshooting.
- Updated job streaming API to support authentication via query parameters for EventSource.
- Improved photo upload process to capture and validate EXIF dates and original modification times.
- Enhanced error handling for file uploads and EXIF extraction failures.
- Introduced new configuration options in ecosystem.config.js to prevent infinite crash loops.
2026-02-04 19:30:05 +00:00

3.3 KiB

Scripts Directory

This directory contains utility scripts organized by purpose.

Directory Structure

db/ - Database Utilities

Database management and migration scripts:

  • drop_all_tables.py - Drop all database tables
  • drop_all_tables_web.py - Drop all web database tables
  • grant_auth_db_permissions.py - Grant permissions on auth database
  • migrate_sqlite_to_postgresql.py - Migrate from SQLite to PostgreSQL
  • recreate_tables_web.py - Recreate web database tables
  • show_db_tables.py - Display database table information

debug/ - Debug and Analysis Scripts

Debugging and analysis tools:

  • analyze_all_faces.py - Analyze all faces in database
  • analyze_pose_matching.py - Analyze face pose matching
  • analyze_poses.py - Analyze face poses
  • check_database_tables.py - Check database table structure
  • check_identified_poses_web.py - Check identified poses in web database
  • check_two_faces_pose.py - Compare poses of two faces
  • check_yaw_angles.py - Check face yaw angles
  • debug_pose_classification.py - Debug pose classification
  • diagnose_frontend_issues.py - Diagnose frontend issues
  • test_eye_visibility.py - Test eye visibility detection
  • test_pose_calculation.py - Test pose calculation

utils/ - Utility Scripts

General utility scripts:

  • fix_admin_password.py - Fix admin user password
  • update_reported_photo_status.py - Update reported photo status

Root-Level Scripts

Project-specific scripts remain in the repository root:

  • install.sh - Installation script
  • run_api_with_worker.sh - Start API with worker
  • start_backend.sh - Start backend server
  • stop_backend.sh - Stop backend server
  • run_worker.sh - Run RQ worker
  • demo.sh - Demo helper script

Database Shell Scripts

Database-related shell scripts remain in scripts/:

  • drop_auth_database.sh - Drop auth database
  • grant_auth_db_delete_permission.sh - Grant delete permissions
  • setup_postgresql.sh - Set up PostgreSQL

Log Management Scripts

Quick access to service logs for troubleshooting:

  • check-logs.sh - Check recent errors from all services
  • tail-errors.sh - Follow error logs in real-time
  • view-recent-errors.sh - View errors from the last N minutes (default: 10)
  • setup-log-rotation.sh - Configure PM2 log rotation to prevent log bloat

Quick Usage

# Check all service logs for recent errors
./scripts/check-logs.sh

# Follow error logs in real-time (Ctrl+C to exit)
./scripts/tail-errors.sh

# View errors from last 10 minutes
./scripts/view-recent-errors.sh

# View errors from last 30 minutes
./scripts/view-recent-errors.sh 30

# Setup log rotation (run once)
./scripts/setup-log-rotation.sh

Log Locations:

  • All logs: /home/appuser/.pm2/logs/
  • API errors: /home/appuser/.pm2/logs/punimtag-api-error.log
  • Worker errors: /home/appuser/.pm2/logs/punimtag-worker-error.log
  • Admin errors: /home/appuser/.pm2/logs/punimtag-admin-error.log
  • Viewer errors: /home/appuser/.pm2/logs/punimtag-viewer-error.log

Usage

Most scripts can be run directly:

# Database utilities
python scripts/db/show_db_tables.py

# Debug scripts
python scripts/debug/analyze_all_faces.py

# Utility scripts
python scripts/utils/fix_admin_password.py

Some scripts may require environment variables or database connections. Check individual script documentation or comments for specific requirements.