Files
picpeak/backend/scripts
paul 605f773a7e
Test and Lint / backend-test (push) Successful in 1m13s
continuous-integration/drone/push Build is passing
Test and Lint / frontend-test (push) Successful in 2m11s
Version and Release / version-bump (push) Successful in 34s
Version and Release / trigger-drone (push) Successful in 3s
fix: resolve gallery photo/thumbnail serving issues
- Change gallery photo URLs from static paths to API endpoints
- Add dedicated thumbnail serving endpoint for galleries
- Add test script to diagnose authentication issues
- Add nginx configuration documentation for Authorization header

This fixes the issue where photos and thumbnails work in admin but not
in gallery view. The problem was that static file routes with auth
middleware often have Authorization headers stripped by reverse proxies.
Using API endpoints ensures proper authentication handling.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-15 11:47:53 +02:00
..

Storage Management Scripts

check-storage.js

Checks the storage directory structure and verifies that photo files exist.

Usage:

# Check overall storage structure
node scripts/check-storage.js

# Check specific event
node scripts/check-storage.js wedding-test-gallery-2025-07-14-1

What it checks:

  • Storage directory structure and permissions
  • Event directories
  • Photo files existence
  • Thumbnail files existence
  • Database vs filesystem consistency

regenerate-thumbnails.js

Regenerates missing thumbnails for photos in the database.

Usage:

# Regenerate all missing thumbnails
node scripts/regenerate-thumbnails.js

# Regenerate thumbnails for specific event (by ID)
node scripts/regenerate-thumbnails.js 2

What it does:

  • Scans photos in database
  • Checks if thumbnails exist
  • Generates missing thumbnails using Sharp
  • Updates database with thumbnail paths
  • Reports success/error statistics

Prerequisites:

  • Node.js environment
  • Database access
  • Write permissions to storage directory
  • Sharp library installed

Production Usage

On your production server:

  1. First, check the storage structure:

    cd /path/to/picpeak/backend
    NODE_ENV=production node scripts/check-storage.js wedding-test-gallery-2025-07-14-1
    
  2. If thumbnails are missing, regenerate them:

    NODE_ENV=production node scripts/regenerate-thumbnails.js 2
    

Note: Replace 2 with the actual event ID from your database.

cleanup-thumbnails.js

Cleans up temporary and orphaned thumbnail files.

Usage:

# Dry run - see what would be deleted
node scripts/cleanup-thumbnails.js --dry-run

# Actually delete orphaned thumbnails
node scripts/cleanup-thumbnails.js

What it does:

  • Identifies temporary thumbnails (thumb_temp_*)
  • Finds orphaned thumbnails not linked to any photo
  • Removes unnecessary files to free up space
  • Reports statistics on cleanup

diagnose-thumbnails.js

Diagnoses why thumbnails might not be showing for a specific event.

Usage:

node scripts/diagnose-thumbnails.js 2

What it checks:

  • Thumbnail paths in database vs filesystem
  • Path format inconsistencies
  • Missing thumbnail files
  • Provides SQL to fix path issues

Common Issues:

  1. Path mismatch: Database has wrong thumbnail path format
  2. Missing files: Thumbnails were never generated
  3. Permission issues: Web server can't read thumbnail files