clash / entrypoint.sh
clash-linux's picture
Upload 11 files
b3b73b1 verified
raw
history blame
1.31 kB
#!/bin/sh
# Exit immediately if a command exits with a non-zero status.
set -e
# 输出基本信息
echo "=========================="
echo " Simple Clash Relay"
echo "=========================="
echo "Starting services..."
# 打印环境变量(隐藏敏感信息)
echo "Environment:"
echo "FLASK_PORT: ${FLASK_PORT:-8000}"
echo "CLASH_PROXY_PORT: ${CLASH_PROXY_PORT:-7890}"
echo "CLASH_API_PORT: ${CLASH_API_PORT:-9090}"
echo "SUB_URL: [hidden]"
echo "API_KEY: [hidden]"
# 检查必要的环境变量
if [ -z "$SUB_URL" ]; then
echo "ERROR: Required environment variable SUB_URL is not set!"
exit 1
fi
if [ -z "$API_KEY" ]; then
echo "WARNING: API_KEY is not set. Using default value (insecure)!"
export API_KEY="changeme"
fi
# 启动Flask应用
echo "Starting Flask application on port ${FLASK_PORT:-8000}..."
# 使用gunicorn启动Flask应用(生产环境推荐)
# 如果WORKER_COUNT未设置,使用CPU核心数+1的worker数量
WORKER_COUNT=${WORKER_COUNT:-$(( $(nproc) + 1 ))}
echo "Using $WORKER_COUNT workers"
# 确保所有参数在一行或使用清晰的续行符
exec gunicorn \
--workers $WORKER_COUNT \
--bind 0.0.0.0:${FLASK_PORT:-8000} \
--log-level info \
--access-logfile - \
--error-logfile - \
app.main:app