#!/bin/bash

set -e  # Beende Skript bei Fehlern
set -o pipefail  # Fehler in Pipelines nicht ignorieren

# Starte Redis
redis-server --daemonize yes

# Starte Celery Worker im Hintergrund
celery -A konova worker --loglevel=info &

# Starte Nginx als Hintergrundprozess
nginx -g "daemon off;" &

# Setze Gunicorn Worker-Anzahl (Standard: (2*CPUs)+1)
WORKERS=${GUNICORN_WORKERS:-$((2 * $(nproc) + 1))}

# Stelle sicher, dass Logs existieren
mkdir -p /var/log/gunicorn
touch /var/log/gunicorn/access.log /var/log/gunicorn/error.log

# Starte Gunicorn als Hauptprozess
exec gunicorn --workers="$WORKERS" konova.wsgi:application \
    --bind=0.0.0.0:8000 \
    --access-logfile /var/log/gunicorn/access.log \
    --error-logfile /var/log/gunicorn/error.log \
    --access-logformat '%({x-real-ip}i)s via %(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s"'
