Spaces:
Running
Running
BASE=/home/node/app | |
USERNAME=$(printenv USERNAME) | |
PASSWORD=$(printenv PASSWORD) | |
HF_TOKEN=$(printenv HF_TOKEN) | |
DATASET_ID=$(printenv DATASET_ID) | |
SYNC_INTERVAL=$(printenv SYNC_INTERVAL) | |
# 如果没有设置用户名和密码,使用默认值 | |
if [ -z "${USERNAME}" ]; then | |
USERNAME="admin" | |
fi | |
if [ -z "${PASSWORD}" ]; then | |
PASSWORD="password" | |
fi | |
echo | |
echo "用户名: ${USERNAME}" | |
echo "密码: ${PASSWORD}" | |
echo | |
# 确保配置目录存在 | |
mkdir -p "${BASE}/config" | |
# 如果配置文件不存在,从默认目录复制 | |
if [ ! -e "${BASE}/config/config.yaml" ]; then | |
echo "配置文件不存在,从默认目录复制: config.yaml" | |
cp -r "${BASE}/default/config.yaml" "${BASE}/config/config.yaml" | |
fi | |
# 修改配置文件中的用户名和密码 | |
sed -i "s/username: .*/username: \"${USERNAME}\"/" ${BASE}/config/config.yaml | |
sed -i "s/password: .*/password: \"${PASSWORD}\"/" ${BASE}/config/config.yaml | |
# 启用基本认证模式,禁用白名单模式 | |
sed -i "s/whitelistMode: true/whitelistMode: false/" ${BASE}/config/config.yaml | |
sed -i "s/basicAuthMode: false/basicAuthMode: true/" ${BASE}/config/config.yaml | |
# 显示配置文件内容以便验证 | |
echo "配置文件内容:" | |
cat ${BASE}/config/config.yaml | |
# 启动数据同步服务(如果提供了必要的环境变量) | |
if [ ! -z "${HF_TOKEN}" ] && [ ! -z "${DATASET_ID}" ]; then | |
echo "启动数据同步服务..." | |
nohup ${BASE}/sync_data.sh > ${BASE}/sync_data.log 2>&1 & | |
echo "数据同步服务已在后台启动" | |
else | |
echo "未提供HF_TOKEN或DATASET_ID,不启动数据同步服务" | |
fi | |
# 正常启动服务器 | |
exec node server.js --listen "$@" |