| # Replace environment variables in config | |
| envsubst < /app/config.template.yaml > /app/config.yaml | |
| # Keep auth files on the persistent bucket mount. | |
| AUTH_DIR="/data/auths" | |
| mkdir -p "${AUTH_DIR}" | |
| # Try to refresh CLI Proxy API from the latest GitHub release, but keep | |
| # the bundled binary as a fallback so a transient GitHub failure does not | |
| # block startup. | |
| echo "=== Checking latest CLI Proxy API release ===" | |
| TMP_DIR=$(mktemp -d) | |
| LATEST_URL=$(curl -fsSL https://api.github.com/repos/router-for-me/CLIProxyAPI/releases/latest | jq -r '.assets[] | select(.name | test("linux.*amd64.*tar.gz")) | .browser_download_url' | head -n 1) | |
| if [ -n "${LATEST_URL}" ] && [ "${LATEST_URL}" != "null" ]; then | |
| if curl -fsSL "${LATEST_URL}" -o "${TMP_DIR}/cli-proxy-api.tar.gz" && tar -xzf "${TMP_DIR}/cli-proxy-api.tar.gz" -C "${TMP_DIR}"; then | |
| LATEST_BIN=$(find "${TMP_DIR}" -name "cli-proxy-api" -type f | head -n 1) | |
| if [ -n "${LATEST_BIN}" ]; then | |
| install -m 755 "${LATEST_BIN}" /app/cli-proxy-api | |
| echo "=== Updated CLI Proxy API from latest GitHub release ===" | |
| else | |
| echo "=== Latest release extracted without cli-proxy-api; using bundled binary ===" | |
| fi | |
| else | |
| echo "=== Latest release download failed; using bundled binary ===" | |
| fi | |
| else | |
| echo "=== Latest release lookup failed; using bundled binary ===" | |
| fi | |
| rm -rf "${TMP_DIR}" | |
| echo "=== Downloading auth files from Supabase ===" | |
| /app/supabase-sync.sh download || echo "Supabase download skipped" | |
| echo "=== Auth files loaded: $(find "${AUTH_DIR}" -name "*.json" | wc -l) ===" | |
| # Start file watcher in background (sync changes to Supabase) | |
| /app/supabase-sync.sh watch & | |
| exec /app/cli-proxy-api -config /app/config.yaml | |