File size: 1,684 Bytes
e2ce547 | 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 | #!/usr/bin/env bash
set -Eeuo pipefail
PROJECT_DIR="${1:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}"
RCLONE_CONFIG_FILE="${RCLONE_CONFIG_FILE:-$HOME/.config/rclone/rclone.conf}"
APP_SERVICE="${KOYEB_APP_SERVICE:-polymarket-collector/collector}"
SECRET_NAME="${KOYEB_RCLONE_SECRET:-polymarket-rclone-config}"
if ! command -v koyeb >/dev/null 2>&1; then
echo "Koyeb CLI is missing: https://www.koyeb.com/docs/build-and-deploy/cli/installation" >&2
exit 1
fi
if [[ ! -f "$PROJECT_DIR/Dockerfile" ]]; then
echo "Dockerfile not found in $PROJECT_DIR" >&2
exit 1
fi
if [[ ! -s "$RCLONE_CONFIG_FILE" ]]; then
echo "rclone config not found: $RCLONE_CONFIG_FILE" >&2
exit 1
fi
if koyeb secrets describe "$SECRET_NAME" >/dev/null 2>&1; then
base64 -w0 "$RCLONE_CONFIG_FILE" \
| koyeb secrets update "$SECRET_NAME" --value-from-stdin >/dev/null
else
base64 -w0 "$RCLONE_CONFIG_FILE" \
| koyeb secrets create "$SECRET_NAME" --value-from-stdin >/dev/null
fi
koyeb deploy "$PROJECT_DIR" "$APP_SERVICE" \
--archive-builder docker \
--instance-type free \
--regions fra \
--ports 8080:http \
--routes /:8080 \
--checks 8080:http:/healthz \
--checks-grace-period 8080=180 \
--scale 1 \
--env MAX_MARKETS=40 \
--env DATA_DIR=/data \
--env HEALTH_HOST=0.0.0.0 \
--env PORT=8080 \
--env ROTATION_SECONDS=300 \
--env MAX_FILE_MIB=32 \
--env BACKUP_INTERVAL_SECONDS=120 \
--env BACKUP_MIN_AGE=30s \
--env REMOVE_AFTER_UPLOAD=true \
--env REQUIRE_REMOTE_BACKUP=true \
--env RCLONE_REMOTE=gdrive:polymarket-data \
--env "RCLONE_CONFIG_B64={{secret.$SECRET_NAME}}" \
--wait \
--wait-timeout 10m
koyeb services get "$APP_SERVICE"
|