error / entrypoint.sh
Selinore's picture
Update entrypoint.sh
ddf136b verified
Raw History Blame Contribute Delete
1.96 kB
#!/bin/bash
set -e
echo "=== 正在初始化挂载盘目录 ==="
mkdir -p /data/db
mkdir -p /data/uploads
mkdir -p /data/images
mkdir -p /data/logs
# 处理意外断电/Space睡眠产生的残留锁文件
if [ -f /data/db/mongod.lock ]; then
echo "检测到遗留的 mongod.lock 文件,正在修复数据库..."
mongod --dbpath /data/db --repair || true
rm -f /data/db/mongod.lock
fi
echo "=== 启动内置 MongoDB 服务 ==="
mongod --dbpath /data/db --bind_ip 127.0.0.1 --logpath /data/logs/mongod.log --fork
echo "等待 MongoDB 就绪..."
until mongosh --quiet --eval "db.adminCommand('ping')" > /dev/null 2>&1; do
sleep 1
done
echo "MongoDB 启动成功!"
# 将 LibreChat 的上传及静态资源目录链接至 /data 挂载盘
rm -rf /app/uploads && ln -s /data/uploads /app/uploads
rm -rf /app/client/public/images && ln -s /data/images /app/client/public/images
# 如果根目录下没有 librechat.yaml,创建一个最基础的空配置文件,避免日志报错
if [ ! -f /app/librechat.yaml ]; then
echo "version: 1.3.16" > /app/librechat.yaml
echo "cache: true" >> /app/librechat.yaml
fi
# ================= 关键环境变量配置 =================
export MONGO_URI="mongodb://127.0.0.1:27017/LibreChat"
export PORT=7860
export HOST=0.0.0.0
export SEARCH=false
# 1. 开启注册与邮箱登录(解决没有注册按钮的问题)
export ALLOW_REGISTRATION=true
export ALLOW_EMAIL_LOGIN=true
# 2. 告诉调度器这是单进程副本(消除日志里的 schedules 报错)
export SCHEDULES_SINGLE_PROCESS=true
# 3. 密钥配置
export JWT_SECRET="${JWT_SECRET:-librechat_secret_hf_random_key_1}"
export JWT_REFRESH_SECRET="${JWT_REFRESH_SECRET:-librechat_secret_hf_random_key_2}"
export CREDS_KEY="${CREDS_KEY:-f3429676ef4827051df4d8a24e9cb72b947c61f2802f5a0446b76aa9bb969796}"
export CREDS_IV="${CREDS_IV:-e47854737d97cb8a72b64ef44197e42d}"
echo "=== 启动 LibreChat 服务 ==="
exec npm run backend