File size: 1,511 Bytes
907fe34
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/env bash
# Restore dexter/hedge state from GitHub (source of truth; /data is ephemeral),
# then start all services under supervisord. No Caddy, no terminal.
set -euo pipefail
export HOME=/home/user

STATE_DIR=/data/hedge-state
DEXTER_LINK=/app/dexter/.dexter
HEDGE_DB=/app/ai-hedge-fund/app/backend/hedge_fund.db

if [[ -n "${GIT_BACKUP_TOKEN:-}" && -n "${STATE_REPO:-}" ]]; then
  REMOTE="https://x-access-token:${GIT_BACKUP_TOKEN}@github.com/${STATE_REPO}.git"
  echo "[entrypoint] restoring state from ${STATE_REPO} ..."
  rm -rf "$STATE_DIR"
  if git clone --depth 1 "$REMOTE" "$STATE_DIR" 2>/dev/null; then
    echo "[entrypoint] state repo cloned."
  else
    echo "[entrypoint] clone failed/empty — starting fresh."
    mkdir -p "$STATE_DIR"; git -C "$STATE_DIR" init -q
    git -C "$STATE_DIR" remote add origin "$REMOTE" 2>/dev/null || true
  fi
  git -C "$STATE_DIR" config user.email "dexter-space@users.noreply.github.com"
  git -C "$STATE_DIR" config user.name  "dexter-space"
  mkdir -p "$STATE_DIR/dexter" "$STATE_DIR/hedge"

  rm -rf "$DEXTER_LINK"; ln -s "$STATE_DIR/dexter" "$DEXTER_LINK"
  mkdir -p "$(dirname "$HEDGE_DB")"; rm -f "$HEDGE_DB"
  ln -s "$STATE_DIR/hedge/hedge_fund.db" "$HEDGE_DB"

  STATE_DIR="$STATE_DIR" /usr/local/bin/state-backup.sh &
  echo "[entrypoint] state backup loop started."
else
  echo "[entrypoint] GIT_BACKUP_TOKEN/STATE_REPO unset — running without persistence."
  mkdir -p "$DEXTER_LINK"
fi

exec /usr/bin/supervisord -c /etc/supervisord.conf