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"