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
- 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>
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:
-
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 -
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:
- Path mismatch: Database has wrong thumbnail path format
- Missing files: Thumbnails were never generated
- Permission issues: Web server can't read thumbnail files