File size: 1,628 Bytes
15e873e
661780d
6c7713d
15e873e
 
661780d
 
15e873e
 
 
661780d
 
 
15e873e
 
661780d
15e873e
 
 
661780d
 
15e873e
93c3a57
661780d
15e873e
661780d
 
15e873e
661780d
 
 
6c7713d
661780d
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/sh

set -e

if [ -z "${TARGET_HF_SPACE_URL}" ]; then
  echo "ERROR: The environment variable TARGET_HF_SPACE_URL is not set." >&2
  echo "Please set this secret in your Hugging Face Space settings." >&2
  exit 1
fi

# استخراج هاست‌نیم از URL هدف (مثال: https://user-space.hf.space/something -> user-space.hf.space)
# این روش نسبت به sed برای استخراج بخش سوم URL (هاست‌نیم) معمولا پایدارتر است.
export TARGET_HOSTNAME_NO_SCHEME=$(echo "${TARGET_HF_SPACE_URL}" | awk -F/ '{print $3}')

if [ -z "${TARGET_HOSTNAME_NO_SCHEME}" ]; then
  echo "ERROR: Could not extract hostname from TARGET_HF_SPACE_URL: ${TARGET_HF_SPACE_URL}" >&2
  exit 1
fi

echo "Target URL (from secret): ${TARGET_HF_SPACE_URL}"
echo "Extracted Target Hostname (for Nginx): ${TARGET_HOSTNAME_NO_SCHEME}"

CONFIG_FILE_PATH="/tmp/nginx.conf"
PID_FILE_PATH="/tmp/nginx.pid"

# جایگزینی متغیر محیطی در فایل template و ایجاد فایل کانفیگ نهایی
envsubst '$TARGET_HOSTNAME_NO_SCHEME' < /etc/nginx/nginx.conf.template > "${CONFIG_FILE_PATH}"

echo "Nginx configuration generated at: ${CONFIG_FILE_PATH}"
echo "Nginx PID file will be at: ${PID_FILE_PATH}"
echo "Starting Nginx..."

# اجرای Nginx در foreground و با فایل کانفیگ مشخص شده
# daemon off; باعث می‌شود Nginx در foreground اجرا شود که برای کانتینرها مناسب است.
# pid ${PID_FILE_PATH}; مسیر فایل PID را مشخص می‌کند.
exec nginx -g "daemon off; pid ${PID_FILE_PATH};" -c "${CONFIG_FILE_PATH}"