#!/bin/sh # CardSync Nginx Entrypoint # Generiert ein selbstsigniertes Zertifikat falls noch keins vorhanden ist. # Eigene Zertifikate können einfach in ./nginx/certs/ als cert.pem + key.pem # abgelegt werden — diese werden dann verwendet. set -e CERT_DIR="/etc/nginx/certs" CERT_FILE="$CERT_DIR/cert.pem" KEY_FILE="$CERT_DIR/key.pem" mkdir -p "$CERT_DIR" if [ ! -f "$CERT_FILE" ] || [ ! -f "$KEY_FILE" ]; then echo "==> Kein TLS-Zertifikat gefunden — generiere selbstsigniertes Cert..." # OpenSSL ist im nginx:alpine Image bereits vorhanden openssl req -x509 -nodes -newkey rsa:2048 \ -keyout "$KEY_FILE" \ -out "$CERT_FILE" \ -days 3650 \ -subj "/CN=cardsync.local/O=CardSync/C=DE" \ -addext "subjectAltName=DNS:cardsync.local,DNS:localhost,IP:127.0.0.1" \ 2>/dev/null chmod 644 "$CERT_FILE" chmod 600 "$KEY_FILE" echo "==> Selbstsigniertes Zertifikat erstellt (gültig 10 Jahre)" echo " Cert: $CERT_FILE" echo " Key: $KEY_FILE" echo "" echo " Um ein eigenes Zertifikat zu verwenden:" echo " - Lege cert.pem + key.pem in ./nginx/certs/ ab" echo " - docker compose restart frontend" else echo "==> Verwende vorhandenes TLS-Zertifikat aus $CERT_DIR" # Kurze Cert-Info ausgeben openssl x509 -in "$CERT_FILE" -noout -subject -issuer -dates 2>/dev/null || true fi # Nginx im Vordergrund starten (Standard-Behavior fortsetzen) exec nginx -g "daemon off;"