| #!/command/with-contenv sh |
| |
| |
| |
| |
| |
| |
| set -e |
|
|
| : "${HERMES_HOME:=/opt/data}" |
| : "${HERMES_UID:=10000}" |
| : "${HERMES_GID:=10000}" |
| : "${HF_BUCKET_REMOTE:=hf://buckets/guntp/hersb}" |
| : "${HF_BUCKET_BACKUP_INTERVAL:=3600}" |
|
|
| |
| if [ -n "${TELEGRAM_API_BASE_URL:-}" ]; then |
| PYBIN=/opt/hermes/.venv/bin/python |
| [ -x "$PYBIN" ] || PYBIN=python3 |
| HERMES_HOME="$HERMES_HOME" TELEGRAM_API_BASE_URL="$TELEGRAM_API_BASE_URL" \ |
| TELEGRAM_API_FILE_BASE_URL="${TELEGRAM_API_FILE_BASE_URL:-}" \ |
| "$PYBIN" - <<'PY' 2>&1 || echo "[hf-hermes] telegram base_url 注入失败,继续启动" |
| import os, yaml |
| p = os.path.join(os.environ["HERMES_HOME"], "config.yaml") |
| with open(p) as f: |
| cfg = yaml.safe_load(f) or {} |
| tg = cfg.setdefault("telegram", {}) |
| extra = tg.setdefault("extra", {}) |
| base = os.environ["TELEGRAM_API_BASE_URL"].rstrip("/") |
| extra["base_url"] = base |
| fbase = os.environ.get("TELEGRAM_API_FILE_BASE_URL", "").strip() |
| if not fbase: |
| fbase = base[:-4] + "/file/bot" if base.endswith("/bot") else base |
| extra["base_file_url"] = fbase |
| with open(p, "w") as f: |
| yaml.safe_dump(cfg, f, sort_keys=False, allow_unicode=True) |
| print(f"[hf-hermes] telegram base_url={base} base_file_url={fbase}") |
| PY |
| fi |
|
|
| |
| chown -R "$HERMES_UID:$HERMES_GID" "$HERMES_HOME" 2>/dev/null || true |
|
|
| |
| if [ -n "${HF_TOKEN:-}" ] && [ -x /usr/local/bin/hf ]; then |
| echo "[hf-hermes] 启动定时备份:先立即同步一次,再每 ${HF_BUCKET_BACKUP_INTERVAL}s -> ${HF_BUCKET_REMOTE}" |
| /opt/hermes-hf/hf-bucket-sync.sh || true |
| setsid sh -c " |
| while true; do |
| sleep ${HF_BUCKET_BACKUP_INTERVAL} |
| /opt/hermes-hf/hf-bucket-sync.sh || true |
| done |
| " >/dev/null 2>&1 & |
| fi |
|
|