#!/bin/sh # Гарантирует наличие self-signed TLS-сертификата перед стартом uvicorn. # Если cert.pem/key.pem отсутствуют (свежий деплой) — генерирует их; # иначе использует существующие. Затем запускает переданную команду (CMD). set -e CERT_DIR=/app/certs if [ ! -f "$CERT_DIR/cert.pem" ] || [ ! -f "$CERT_DIR/key.pem" ]; then echo "[entrypoint] TLS cert not found in $CERT_DIR — generating self-signed (CN=${NVR_TLS_CN:-localhost})" mkdir -p "$CERT_DIR" openssl req -x509 -newkey rsa:2048 -nodes \ -keyout "$CERT_DIR/key.pem" -out "$CERT_DIR/cert.pem" \ -days 3650 -subj "/CN=${NVR_TLS_CN:-localhost}" fi exec "$@"