File size: 1,949 Bytes
163c686 | 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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | #!/usr/bin/env sh
set -eu
APP_PORT="${APP_PORT:-4173}"
PUBLIC_PORT="${PORT:-7860}"
export APP_ORIGIN="${APP_ORIGIN:-http://127.0.0.1:${APP_PORT}}"
export REMOTE_FOLDER="${REMOTE_FOLDER:-huggingface:notes}"
APP_PID=""
PROXY_PID=""
log() {
printf '%s\n' "$*"
}
setup_rclone_config() {
if [ -n "${RCLONE_CONF:-}" ] || [ -n "${RCLONE_CONFIG_BASE64:-}" ] || [ -n "${RCLONE_CONFIG_CONTENT:-}" ]; then
mkdir -p /root/.config/rclone
umask 077
export RCLONE_CONFIG="${RCLONE_CONFIG:-/root/.config/rclone/rclone.conf}"
if [ -n "${RCLONE_CONF:-}" ]; then
printf '%s' "$RCLONE_CONF" > "$RCLONE_CONFIG"
log "rclone config loaded from RCLONE_CONF."
elif [ -n "${RCLONE_CONFIG_BASE64:-}" ]; then
printf '%s' "$RCLONE_CONFIG_BASE64" | base64 -d > "$RCLONE_CONFIG"
log "rclone config loaded from RCLONE_CONFIG_BASE64."
else
printf '%s' "$RCLONE_CONFIG_CONTENT" > "$RCLONE_CONFIG"
log "rclone config loaded from RCLONE_CONFIG_CONTENT."
fi
chmod 600 "$RCLONE_CONFIG"
return
fi
log "No rclone config file secret found; using rclone environment remote config if provided."
}
shutdown() {
log "Shutting down, running final backup..."
node scripts/backup-sqlite.mjs --backup >/tmp/final-backup.log 2>&1 || log "Final backup failed."
if [ -n "$PROXY_PID" ]; then kill "$PROXY_PID" 2>/dev/null || true; fi
if [ -n "$APP_PID" ]; then kill "$APP_PID" 2>/dev/null || true; fi
wait 2>/dev/null || true
}
trap shutdown INT TERM
mkdir -p data
setup_rclone_config
log "Restoring database from ${REMOTE_FOLDER}/notes.db if it exists..."
node scripts/backup-sqlite.mjs --restore || log "Restore skipped or failed; continuing with local initialization."
log "Starting app on ${APP_ORIGIN}..."
PORT="$APP_PORT" node server.mjs &
APP_PID="$!"
log "Starting backup proxy on port ${PUBLIC_PORT}..."
PORT="$PUBLIC_PORT" node scripts/backup-proxy.mjs &
PROXY_PID="$!"
wait "$PROXY_PID"
|