#!/bin/sh FULLS_DIR="/app/public/images/fulls" THUMBS_DIR="/app/public/images/thumbs" # ImageMagick 7 (Alpine) nutzt "magick" statt "convert" if command -v magick >/dev/null 2>&1; then IM_CMD="magick" elif command -v convert >/dev/null 2>&1; then IM_CMD="convert" else echo "FEHLER: Weder magick noch convert gefunden! Thumbnails koennen nicht erzeugt werden." IM_CMD="" fi # Thumbnails fuer einen Quell- und Zielordner generieren generate_thumbs_for_dir() { src_dir="$1" dst_dir="$2" [ -z "$IM_CMD" ] && return mkdir -p "$dst_dir" for img in "$src_dir"/*; do [ -f "$img" ] || continue filename=$(basename "$img") ext=$(echo "${filename##*.}" | tr '[:upper:]' '[:lower:]') case "$ext" in jpg|jpeg|png|gif|webp) ;; *) continue ;; esac if [ ! -f "$dst_dir/$filename" ] || [ "$img" -nt "$dst_dir/$filename" ]; then echo "Thumbnail erstellen: $dst_dir/$filename" $IM_CMD "$img" -resize 512x512 -quality 80 "$dst_dir/$filename" if [ $? -ne 0 ]; then echo "WARNUNG: Thumbnail fehlgeschlagen fuer $filename" fi fi done } generate_all_thumbs() { # Root-Bilder generate_thumbs_for_dir "$FULLS_DIR" "$THUMBS_DIR" # Unterordner (Kunden-Ordner) for dir in "$FULLS_DIR"/*/; do [ -d "$dir" ] || continue foldername=$(basename "$dir") generate_thumbs_for_dir "$dir" "$THUMBS_DIR/$foldername" done } echo "=== Mischkomposition - Starte Thumbnail-Generierung ===" generate_all_thumbs echo "=== Thumbnail-Generierung abgeschlossen ===" # Hintergrund-Prozess: Alle 60 Sekunden nach neuen Bildern suchen (while true; do sleep 60 generate_all_thumbs done) & # Node Server starten cd /app && node backend/server.js