#!/usr/bin/env bash set -euo pipefail PORT="${PORT:-7860}" GRPC_PORT="${GRPC_PORT:-7859}" echo "[start] MODELS_DIR=${MODELS_DIR:-/grpc-models}" echo "[start] MODEL_URLS length: ${#MODEL_URLS}" echo "[start] GRPC_PORT=${GRPC_PORT}" echo "[start] Public PORT (HF)=${PORT}" # 1) Optional: stáhni modely /srv/model_download.sh || true # 2) Start gRPC server (na pozadí) /usr/local/bin/gRPCServerCLI "${MODELS_DIR}" & SERVER_PID=$! echo "[start] gRPCServerCLI started (pid=${SERVER_PID}) target=127.0.0.1:${GRPC_PORT}" # 3) Počkej až začne naslouchat (max ~30s) for i in {1..60}; do if nc -z 127.0.0.1 "${GRPC_PORT}" 2>/dev/null; then echo "[start] gRPCServerCLI is up." break fi echo "[start] waiting gRPCServerCLI..." sleep 0.5 done # 4) Přepiš port v Envoy YAML (placeholder 7860 → $PORT) if [[ "${PORT}" != "7860" ]]; then sed -i "s/port_value: 7860/port_value: ${PORT}/g" /srv/envoy.yaml fi # A pro jistotu přepiš upstream port (placeholder 7859 → $GRPC_PORT), kdyby ses rozhodl změnit if [[ "${GRPC_PORT}" != "7859" ]]; then sed -i "s/port_value: 7859/port_value: ${GRPC_PORT}/g" /srv/envoy.yaml fi # 5) Spusť Envoy v popředí (PID 1) echo "[start] starting Envoy on :${PORT} → 127.0.0.1:${GRPC_PORT} (h1/h2c → h2)" exec /usr/local/bin/envoy -c /srv/envoy.yaml -l info