Spaces:
Sleeping
Sleeping
| # --- 1. 配置 Git 凭证 --- | |
| echo "Configuring Git credentials..." | |
| git config --global user.email "moltbot@huggingface.co" | |
| git config --global user.name "Moltbot Cloud" | |
| git config --global credential.helper store | |
| echo "https://${GIT_USER}:${GIT_TOKEN}@github.com" > ~/.git-credentials | |
| # --- 2. 准备记忆仓库 --- | |
| echo "Restoring memory from GitHub..." | |
| if [ ! -d "moltbot-memory" ]; then | |
| git clone https://github.com/${GIT_USER}/${GIT_REPO}.git moltbot-memory || echo "Clone failed..." | |
| else | |
| cd moltbot-memory && git pull && cd .. | |
| fi | |
| # --- 3. 记忆植入 (软链接) --- | |
| APP_CONFIG_DIR="$HOME/.clawdbot" | |
| if [ -d "$APP_CONFIG_DIR" ] && [ ! -L "$APP_CONFIG_DIR" ]; then rm -rf "$APP_CONFIG_DIR"; fi | |
| if [ ! -L "$APP_CONFIG_DIR" ]; then ln -s "$(pwd)/moltbot-memory" "$APP_CONFIG_DIR"; fi | |
| # --- 4. 🧠 修正配置注入 --- | |
| echo "⚙️ Configuring Moltbot..." | |
| # 尝试强制写入 OpenAI 兼容配置 (如果 Secrets 存在) | |
| if [ -n "$OPENAI_API_KEY" ]; then | |
| export CLAWDBOT_OPENAI_API_KEY="$OPENAI_API_KEY" | |
| fi | |
| if [ -n "$OPENAI_BASE_URL" ]; then | |
| export CLAWDBOT_OPENAI_BASE_URL="$OPENAI_BASE_URL" | |
| fi | |
| # 尝试修正模型配置 Key | |
| if [ -n "$GATEWAY_AGENT_MODEL" ]; then | |
| echo "Updating Model to: $GATEWAY_AGENT_MODEL" | |
| # 方案 A: 尝试设置全局 agent.model | |
| npm exec -- moltbot config set agent.model "$GATEWAY_AGENT_MODEL" || true | |
| # 方案 B: 尝试设置全局 model (以防万一) | |
| npm exec -- moltbot config set model "$GATEWAY_AGENT_MODEL" || true | |
| fi | |
| # --- 5. 后台自动保存 --- | |
| sync_memory() { | |
| while true; do | |
| sleep 300 | |
| if [ -d "moltbot-memory" ]; then | |
| cd moltbot-memory | |
| if [ -n "$(git status --porcelain)" ]; then | |
| git add . | |
| git commit -m "Auto-save: $(date)" | |
| git push | |
| fi | |
| cd .. | |
| fi | |
| done | |
| } | |
| sync_memory & | |
| # --- 6. 启动服务 --- | |
| if [ -z "$GATEWAY_TOKEN" ]; then | |
| export CLAWDBOT_GATEWAY_TOKEN=$(cat /proc/sys/kernel/random/uuid) | |
| echo "⚠️ Random Token: $CLAWDBOT_GATEWAY_TOKEN" | |
| else | |
| export CLAWDBOT_GATEWAY_TOKEN="$GATEWAY_TOKEN" | |
| fi | |
| echo "🚀 Starting Moltbot on internal port 3000..." | |
| # 启动 Moltbot | |
| npm exec -- moltbot gateway --port 3000 --allow-unconfigured & | |
| echo "🌉 Starting Socat Bridge (0.0.0.0:7860 -> 127.0.0.1:3000)..." | |
| exec socat TCP-LISTEN:7860,fork,bind=0.0.0.0 TCP:127.0.0.1:3000 |